FlaskBlogging:错误:表[…]不存在,(未创建表)

2024-05-12 18:51:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将Flask Blogging添加到现有的应用程序中,但它似乎不想在现有的Flask SQLAlchemy MySQL数据库上玩得很好。但是,它使用自己的sqlite数据库工作得很好。在

在应用程序启动时,它会尝试创建表(每次),但不会给出错误:

flask run
 * Serving Flask app "myapp"
 * Forcing debug mode on
2017-06-13 21:32:33,369:DEBUG:flask-blogging:Created table with table name post
2017-06-13 21:32:33,371:DEBUG:flask-blogging:Created table with table name tag
2017-06-13 21:32:33,373:DEBUG:flask-blogging:Created table with table name tag_posts
2017-06-13 21:32:33,375:DEBUG:flask-blogging:Created table with table name user_posts
2017-06-13 21:32:33,472:INFO:werkzeug: * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

然而,访问blog路由会抱怨(正确地)表不存在。在数据库里看他们不在那里。在

以下是相关代码:

^{pr2}$

config是一个配置对象,它包含相关的sql连接字符串(在SQLALCHEMY_DATABASE_URI中)以及其他必需的Flask配置变量,对于应用程序的其余部分来说工作正常。在


Tags: namedebug数据库应用程序flasksqlalchemyontag
2条回答

Flask-Blogging使用db来获得metadata。这里可能缺少一些互动。您可以尝试显式地为数据库对象和博客存储设置metdata吗?在

from sqlalchemy import MetaData

metadata = MetaData() #
db = SQLAlchemy(metadata=metadata)
...
db.init_app(app)
...
storage = SQLAStorage(db=db)
# or
#storage = SQLAStorage(engine=db.engine,  metadata=metadata)
...

在演示剪切粘贴编程的危险性时(在这种情况下,您实际上不了解代码的作用),我缺少了:

db.create_all()

羞耻,所以不会让你删除令人尴尬的愚蠢问题。:-)

相关问题 更多 >