• 变量管理 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 地址

  • 相关阅读:
    servlet-响应信息
    社会学系列:《乡土中国》读书笔记
    文学系列:《叶之震颤》读书笔记
    《娱乐至死》读书笔记
    畅销书系列:《引爆点》、《异类》、《从0到1》
    大学《管理学》教材笔记
    心理学系列:《乌合之众》读书笔记
    心理学系列:《我们内心的冲突》、《亲密关系》、《犯罪心理学》、《态度改变与社会影响》读书笔记
    政史系列:《社会契约论》读书笔记
    音乐系列:2018年滚石琴行木吉他学习笔记
  • 原文地址:https://www.cnblogs.com/shiwei1930/p/11847988.html
Copyright © 2020-2023  润新知