以下视频教程在演示一个简单的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'))
但是,这不会对数据库进行任何更改。我需要针对该应用程序的结构运行哪些命令?
谢谢!
不能完全确定这是否对您的情况有所帮助,但是在通过运行flask run启动烧瓶壳之后,我总是在终端中使用db.create_all()。
检查此页面以了解如何运行烧瓶外壳:https://flask.palletsprojects.com/en/1.1.x/cli/
一旦进入外壳,您就可以在应用程序环境中运行python,并且可以使用db.create_all()
这结束了工作。基于@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很好地选择了我的棉花糖架构和模型定义。