zoukankan      html  css  js  c++  java
  • 变量管理 dotenv 的 使用

    python-dotenv

    安装

    pip install python-dotenv   或  pipenv  install python-dotenv --skip-lock 
    

    创建目标文件

    在项目根目录下创建, (可灵活选择)
    touch .env 
    

    使用

    import os
    from dotenv import load_dotenv       // 1. 导包
    from pathlib import Path
    
    if __name__ == '__main__':
    
        load_dotenv()                   //2. 加载 .env  文件, 默认 这个文件名,默认自动 在当前工作目录下 查找
        """
        文件可以是任意一个文件,则在加载时 需 显式 添加 参数 dotenv_path 来指定 此文件的位置, 
        例如:
            env_path = Path("./modelForm_Demo01/.env")
        	load_dotenv(dotenv_path= env_path)	
        """
        courseList = eval(os.getenv("courseList"))  // 3. 通过 os.genenv(key) 来获取, 类型都为字符串
        // 获取到的字符串值, 可通过 eval()  内建函数 来转换为 对应 的 类型
        print(type(courseList))
        print(courseList[0])
    

    Github 地址

    flask 中的使用

    Django-dotenv

    安装

    pip install django-dotenv    或  pipenv install django-dotenv  --skip-lock 
    

    卸载 python-dotenv

    pip uninstall python-dotenv
    

    使用

    • 修改 manage.py -------, 使用 runserver 启动 Django 的 情况下

      import os
      import sys
      import dotenv                           // 1. 导包
      
      def main():
          os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'modelForm_Demo01.settings')  
          try:
              from django.core.management import execute_from_command_line
          except ImportError as exc:
      		pass
          execute_from_command_line(sys.argv)
      
      
      if __name__ == '__main__':
          dotenv.read_dotenv()                 // 2. 加载 .env 文件,默认 项目 根路径下查找,
          """
          params: 
          	dotenv : 文件 地址,例:os.path.abspath(os.path.join(os.path.dirname(__file__), '.env02'))
          	override :  如果.env中的值应该覆盖系统变量,则为True , 默认 False 
          """
          EMAIL_URL = os.getenv("EMAIL_URL")   // 3.  获取 变量 
          main()
      
    • 修改 wsgi.py 文件, ----- 使用 uwsgi 启动 Django 的 情况下

      #  具体 使用 方法 与 上面讲的 一样 
      import os
      from django.core.wsgi import get_wsgi_application
      import dotenv                                                           // 1.  导包
      
      dotenv.read_dotenv(os.path.join(os.path.dirname(__file__), '.env02'))   // 2.  加载 
      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'modelForm_Demo01.settings') 
      
      EMAIL_URL = os.getenv("EMAIL_URL")                                      // 3.  获取 变量    
      application = get_wsgi_application()
      
      
      

    .env 文件说明

    1. 使用键值对的形式定义
    2. 以  #  开头的为注释
    

    Github 地址

  • 相关阅读:
    每日日报2020.12.1
    每日日报2020.11.30
    981. Time Based Key-Value Store
    1146. Snapshot Array
    565. Array Nesting
    79. Word Search
    43. Multiply Strings
    Largest value of the expression
    1014. Best Sightseeing Pair
    562. Longest Line of Consecutive One in Matrix
  • 原文地址:https://www.cnblogs.com/shiwei1930/p/11847988.html
Copyright © 2011-2022 走看看