Python使用环境变量

在Python程序中,如果需要访问数据库等系统,需要使用账号和密码。将密码硬编码到程序中是非常危险的,解决的简便方法是采用环境变量。即把密码设置在操作系统的环境变量文件中,然后让Python程序运行时能够获得环境变量中的账号信息。

举例,在Django中,需要在settings.py中设置访问MySQL数据库账号信息,则设置:

DATABASES = {
    'default': {
        'ENGINE': os.getenv('MYAPP_DB_ENGINE'),
        'NAME': os.getenv('MYAPP_DB_NAME'),
        'USER': os.getenv('MYAPP_DB_USER'),
        'PASSWORD': os.getenv('MYAPP_DB_PASSWORD'),
        'HOST': os.getenv('MYAPP_DB_HOST'),
        'PORT': os.getenv('MYAPP_DB_PORT'),
    }
}

然后配置~/.bash_profle中:

MYAPP_DB_ENGINE=django.db.backends.mysql
MYAPP_DB_NAME=myappdb
MYAPP_DB_USER=myapp
MYAPP_DB_PASSWORD="MYPASSWORD"
MYAPP_DB_HOST=127.0.0.1
MYAPP_DB_PORT=3306

这样只需要登陆系统中,加载了环境变量,就可以正常运行Django Python程序,因为所有的数据库配置信息都从环境变量中获得。

参考

Last updated