参考
关于项目配置的说明
无论代码是存储在公共或私有远程仓库中,都不应提交敏感信息并将其推送到远程仓库。这包括密钥,密码,API密钥等。 此时,我们一般在 settings.py 模块中处理两种特定类型的配置:
- 密钥和密码等敏感信息;
- 针对特定的环境配置。
常见配置模式:
- 1 export 的方式
- 2 利用 pycharm 等编辑器存储环境变量
- 3 存储在 .env 文件中,再从中读取配置
代码:
# environment variables
import os
SECRET_KEY = os.environ['SECRET_KEY']
# or local files
with open('/etc/secret_key.txt') as f:
SECRET_KEY = f.read().strip()
针对具体框架的实用功能库
Python Decouple
对于django来说,可以尝试使用一个名为 Python Decouple 的优秀实用功能库。 它将搜索名为.env 的本地文件以设置这配置变量,并将内容配置到环境变量。它还提供了一个定义默认值的接口,在适当时将数据转换为int,bool和list。
链接: simpleisbetterthancomplex.com/2015/11/26/…
安装: pip install python-decouple
使用:
myproject/settings.py
from decouple import config
SECRET_KEY = config('SECRET_KEY')
现在,我们可以将敏感信息放在一个名为**.env的特殊文件中(注意前面的点),该文件位于manage.py**文件所在的目录中:例如:
myproject/
|-- myproject/
| |-- accounts/
| |-- boards/
| |-- myproject/
| |-- static/
| |-- templates/
| |-- .env <-- here!
| |-- .gitignore
| |-- db.sqlite3
| +-- manage.py
+-- venv/
.env 文件内容:
SECRET_KEY=rqr_cjv4igscyu8&&(0ce(=sy=f2)p=f_wn&@0xsp7m$@!kp=d
该 .env 文件包含在 .gitignore文件中,所以每次我们要部署应用程序或在不同的机器上运行时,我们将创建一个.env 文件,并添加必要的配置。
python-dotenv
对于 flask 程序来说,可以尝试 python-dotenv 库。 安装:
pip install python-dotenv
此时,在项目的根目录下新建一个名为 .flaskenv 的文件,其内容是:
FLASK_APP=microblog.py
通过此项设置,FLASK_APP就可以自动加载了。