带有烧瓶,flask_restful,sqlalchemy和棉花糖的db.create_all()

问题描述 投票:-1回答:2

以下视频教程在演示一个简单的Flask API应用程序方面做得非常好。视频开始于作者使用db.create_all根据他的模型和架​​构定义自动建立他的数据库的位置:

https://youtu.be/PTZiDnuC86g?t=1154

我想将Flask-RESTful,SQLAlchemy和Marshmallow与Flask结合使用,并且我发现以下项目是一个很好的模板起点:

https://github.com/navi25/RestaurantAPI

我已经调整了模型和模式定义以适合我自己的需求。但是,该项目通过拆分模型和端点定义,采用了比视频中显示的模块化的方法。当我运行db.create_all()自动构建数据库时,我得到:

未找到应用程序。在视图函数内部工作或推送应用程序上下文。

我尝试过类似的事情:

from model import db
from run import create_app
db.create_all(app=create_app('config'))

但是,这不会对数据库进行任何更改。我需要针对该应用程序的结构运行哪些命令?

谢谢!

python flask flask-sqlalchemy flask-restful flask-marshmallow
2个回答
0
投票

不能完全确定这是否对您的情况有所帮助,但是在通过运行flask run启动烧瓶壳之后,我总是在终端中使用db.create_all()。

检查此页面以了解如何运行烧瓶外壳:https://flask.palletsprojects.com/en/1.1.x/cli/

一旦进入外壳,您就可以在应用程序环境中运行python,并且可以使用db.create_all()


0
投票

这结束了工作。基于@chfaber的建议,我使用flask shell运行以下内容

from model import db
from run import create_app
from config import BaseConfig

create_app(BaseConfig)
db.init_app(app)
db.create_all()

Bingo-SQLAlchemy很好地选择了我的棉花糖架构和模型定义。

© www.soinside.com 2019 - 2024. All rights reserved.