【发布时间】:2019-03-13 16:18:19
【问题描述】:
我有一个 Docker 设置,带有一个 Flask 应用程序和一个 Postgresql 后端。我希望能够从 Flask-SqlAlchemy 中定义的模型在 Postgres 中创建我的所有表。这目前不适合我。
在我的应用程序 __init__.py 中,我使用配置文件创建了我的应用程序。
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_pyfile("config.py")
app.config.from_pyfile("secrets.py")
return app
app = create_app()
from app import routes
在我的 routes.py 中,我从应用程序创建数据库,然后在第一个请求之前设置它(导入我的模型):
from .models import User, Community, Post, Debate
...
db = SQLAlchemy(app)
@app.before_first_request
def setup():
db.init_app(app)
with app.app_context():
db.metadata.drop_all(bind=db.engine)
db.metadata.create_all(bind=db.engine)
db.session.commit()
我的模型继承自我创建的 BaseModel,该 BaseModel 继承自 db.Model,其中 db 是我在 routes.py 中定义的 db 的导入。
我在这里做错了什么?如何让 flask-sqlalchemy 自动为我创建表?我是不是找错树了?
【问题讨论】:
标签: python postgresql flask sqlalchemy