python - create_app() 中的 db.create_all() 不起作用
问题描述
错误是'No application found. Either work inside a view function or push'
RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.
我的 create_app() 是:
app = Flask(__name__, static_folder='static')
app.config.from_object(Config)
db.init_app(app)
Migrate().init_app(app, db)
with app.app_context():
from slackbot.v1 import bp as v1_bp
app.register_blueprint(v1_bp)
from models import SlackerModel,UrlModel,ParaModel
db.create_all()
return app
当它运行 create_app() 时,它会给我错误。但是,当我替换db.create_all()
by
行时@manager.command
def create_db():
db.create_all()
它不起作用!
解决方案
我找到原因了!在模型中。我从 myapp 的 init.py 中导入了“db”,但它应该从我的数据库中导入。
推荐阅读
- docker - 在 Container-Optimized OS 中保存持久性可执行文件的位置
- python - 计数符号更改
- sql - 对于类目录应用程序,如何避免使用多个多对多联结的多个 SQL 联结
- c# - 如何修复 Visual Studio 2022 警告 CA1416“所有平台均可访问的呼叫站点”但“仅支持:'windows'”?
- go - vscode中的调试不会在断点处停止,调试器启动时会说“找不到文件...”
- swift - 当 api 响应模型数据为零时,即使使用 if let 语句,应用程序也会崩溃
- javascript - 检查机器人启动前发送的消息的新反应
- node.js - 是否可以使用“executionAsyncId”(异步挂钩)在 express/nodejs 中为每个请求创建一个唯一的全局上下文存储/状态?
- vagrant - 如何从主机获取文件到 vagrant VM (MAC OS)
- node.js - 纱线安装失败导入系统;打印 "%s.%s.%s" % sys.version_info[:3] 无效语法