PHP前端开发

配置 Django 项目以将敏感数据存储在 YAML 文件中

百变鹏仔 3天前 #Python
文章标签 数据存储

.py 文件中硬编码令牌、数据库凭据和其他敏感数据并不安全。很多人使用django-environ库,但我认为它不方便。因此,我使用 yaml 文件来存储敏感数据,并使用 pyyaml 库来读取它们的数据。

创建项目文件夹:

mkdir myproject

切换创建的文件夹:

cd myproject

创建虚拟环境:

python3 -m venv env

激活虚拟环境:

source env/bin/activate

安装 django 和 pyyaml:

pip3 install django pyyaml

开始新的 django 项目:

django-admin startproject myproject .

在settings.py文件附近创建settings.yaml文件:

touch myproject/settings.yaml

在settings.py 文件的开头插入导入:

import osimport yaml

插入从settings.yaml文件中读取的代码:

with open(os.path.join(str(path(__file__).resolve().parent), 'settings.yaml'), 'r') as settingsfile:    settings = yaml.safe_load(settingsfile)

插入从settings.yaml文件中读取的代码:

secret_key = settings['secret_key']debug = settings['debug']allowed_hosts = settings['allowed_hosts']databases = {    'default': {        'engine': 'django.db.backends.postgresql',        'name': settings['databases']['name'],        'user': settings['databases']['user'],        'password': settings['databases']['password'],        'host': settings['databases']['host'],        'port': settings['databases']['port'],    }}

将配置放入settings.yaml中:

SECRET_KEY: 'your-secret-token'DEBUG: trueALLOWED_HOSTS:  - 127.0.0.1  - localhost  - 0.0.0.0DATABASES:  NAME: 'database_name'  USER: 'database_user'  PASSWORD: 'password'  HOST: '127.0.0.1'  PORT: '5432'