Python从环境变量中获取数据库信息

在开发环境中为了数据安全, 数据库信息不要直接写在代码里, 比较好的做法是将相关信息放在环境变量里, 连接数据库时再从环境变量里读取.

将信息写入环境变量

创建文件.SECRET_KEY, 写入类似下面的内容:

SECRET_HOST='127.0.0.1'
SECRET_DBNAME='dbname'
SECRET_DBUSER='username'
SECRET_DBPASSWD='123456'

用python包dotenv把文件内容写入环境变量, 安装:

1
pip install python-dotenv

使用:

1
2
3
4
5
6
7
8
9
import os
from dotenv import load_dotenv

def load_environ_key(path):  
    key_file_path = path  
    if os.path.exists(key_file_path):  
        load_dotenv(key_file_path, override=True)

load_environ_key('/www/xxx/.SECRET_KEY')

从环境变量读取信息

从环境变量里读取信息举例:

1
2
3
4
5
import os
import pymysql

db = pymysql.connect(host=os.environ["SECRET_HOST"], user=os.environ["SECRET_DBUSER"], passwd=os.environ["SECRET_DBPASSWD"], database=os.environ["SECRET_DBNAME"], charset='utf8') 
cursor = db.cursor()