You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用db.create_all()无法创建SQLite数据库的问题求助

解决Flask SQLite数据库未生成的问题

问题排查与修复步骤

1. 修正模型类方法名拼写错误

你的Todo类中定义的__retr__是拼写错误,正确的特殊方法名应为__repr__,这个错误会导致模型类定义异常,影响表创建:

def __repr__(self) -> str:
    return f"{self.sno} - {self.title}"

2. 补全Shell命令中的app导入

你在PowerShell的Python交互环境中执行命令时,未导入app对象,导致无法调用app.app_context()。正确的命令序列如下:

from app import app, db, Todo
with app.app_context():
    db.create_all()

3. 确认命令执行的目录位置

SQLite相对路径sqlite:///todo.db会在当前Python交互环境的工作目录下生成文件,而非Flask项目根目录。建议先切换到项目根目录再执行命令:

cd "你的Flask项目所在完整路径"
python

之后再执行导入和建表命令。

4. 可选:在代码中自动初始化表

可以在程序启动逻辑中添加表创建代码,这样启动Flask应用时会自动检查并创建所需表:

if __name__ == '__main__':
    with app.app_context():
        db.create_all()
    app.run(debug=True, port=8000)

内容的提问来源于stack exchange,提问作者polkamonster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:10:01