如何解决烧瓶应用程序看不到环境变量
为了在 Prostgresql 数据库中创建表,Flask 应用程序没有从 .env 获取 sqlALCHEMY_DATABASE_URI 值。
这里的配置:
import os
class Config(object):
DEBUG = False
TESTING = False
CSRF_ENABLED = True
SECRET_KEY = os.environ.get('SECRET_KEY')
sqlALCHEMY_DATABASE_URI = os.environ.get('sqlALCHEMY_DATABASE_URI')
sqlALCHEMY_TRACK_MODIFICATIONS = False
...
我试过了
>>> from app.extensions import db
>>> db.create_all()
和
>>> from app import create_app
>>> app = create_app()
>>> from app.extensions import db
>>> db.create_all()
和
>>> from app import create_app
>>> app=create_app()
>>> app.app_context().push()
>>> from app.extensions import db
>>> db.create_all()
在我的 Stackoverflow 朋友的帮助下,我进入了工作过程:
>>> from dotenv import load_dotenv
>>> load_dotenv()
>>> import os
>>> os.getenv('sqlALCHEMY_DATABASE_URI')
>>> from app import create_app
>>> app = create_app()
>>> app.app_context().push()
>>> from app.extensions import db
>>> db.create_all()
问题:错误在哪里? config.py
有 import os
行。 python_dotenv
已安装。我应该怎么做才能避免使用上面 proc 中的前四行?
非常感谢任何帮助。
解决方法
直到 load_dotenv()
,.env
中的任何内容都会被忽略。问题是在哪里做load_dotenv()
。它必须在任何人接触到 os.environ
并期待 .env
出现在那里之前发生。
通常的地方,如果你遵循 Flask Mega 教程中的模式,就在之前
class Config(object):
例如,https://github.com/miguelgrinberg/microblog/blob/v0.15/config.py
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。