python 项目配置总结

795 阅读2分钟

参考

github.com/pythonzhich…

github.com/luhuisicnu/…

关于项目配置的说明

无论代码是存储在公共或私有远程仓库中,都不应提交敏感信息并将其推送到远程仓库。这包括密钥,密码,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就可以自动加载了。