环境变量
正如构建此应用时你所看到的,在启动服务器之前,有许多配置选项取决于在环境中设置的变量。 这包括密钥、电子邮件服务器信息、数据库 URL 和 Microsoft Translator API key。 你可能会和我一样觉得,这很不方便,因为每次打开新的终端会话时,都需要重新设置这些变量。
译者注:可以通过将环境变量设置到开机启动中,来保持它们在该计算机中的所有终端中都生效。
应用依赖大量环境变量的常见处理模式是将这些变量存储在应用根目录中的 .env 文件中。 应用在启动时会从此文件中导入变量,这样就不需要你手动设置这些变量了。
有一个支持 .env 文件的 Python 包,名为 python-dotenv
。 所以让我们安装这个包:
(venv) $ pip install python-dotenv
由于 config.py 模块是我读取所有环境变量的地方,因此我将在创建 Config 类之前导入 .env 文件,以便在构造类时设置变量:
config.py :导入.env 文件中的环境变量。
import os
from dotenv import load_dotenv
basedir = os.path.abspath(os.path.dirname(__file__))
load_dotenv(os.path.join(basedir, '.env'))
class Config(object):
# ...
现在你可以创建一个 .env 文件并在其中写入应用所需的所有环境变量了。不要将 .env 文件加入到源代码版本控制中,这非常重要。否则,一旦你的密码和其他重要信息上传到远程代码库中后,你就会后悔莫及。
.env 文件可以用于所有配置变量,但是不能用于 Flask 命令行的 FLASK_APP
和 FLASK_DEBUG
环境变量,因为它们在应用启动的早期(应用实例和配置对象存在之前)就被使用了。
以下示例显示了 .env 文件,该文件定义了一个安全密钥,将电子邮件配置为在本地运行的邮件服务器的 25 端口上,并且不进行身份验证,设置 Microsoft Translator API key,使用数据库配置的默认值:
SECRET_KEY=a-really-long-and-unique-key-that-nobody-knows
MAIL_SERVER=localhost
MAIL_PORT=25
MS_TRANSLATOR_KEY=<your-translator-key-here>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论