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 地址

  • 相关阅读:
    [ 原创 ] Java基础9--final throw throws finally的区别
    [ 原创 ] Java基础8--什么叫做重载
    [ 原创 ] Java基础7--Java反射机制主要提供了以下哪些功能?
    [ 转载 ] 什么是正则表达式的贪婪与非贪婪匹配
    [ 原创 ] Java基础6--构造函数和抽象类的性质
    [ 转载 ] Java中常用的设计模式
    [ 转载 ] 超详细:常用的设计模式汇总
    [ 转载 ] Java开发中的23种设计模式详解(转)
    [ 原创 ] Java基础5--abstract class和interface的区别
    MetaWeblog API
  • 原文地址:https://www.cnblogs.com/shiwei1930/p/11847988.html
Copyright © 2011-2022 走看看