变量管理 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])
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. 以 # 开头的为注释
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体