【发布时间】:2021-05-03 18:48:21
【问题描述】:
Flask 应用没有从 .env 获取 SQLALCHEMY_DATABASE_URI 值,以便在 ProstgreSQL db 中创建表。
这是配置:
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中的前四行?
非常感谢任何帮助。
【问题讨论】:
标签: python flask flask-sqlalchemy python-venv dotenv