首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask菜鸟查询sqlite3.OperationalError

Flask菜鸟查询sqlite3.OperationalError
EN

Stack Overflow用户
提问于 2021-11-15 08:04:42
回答 1查看 25关注 0票数 1

我是一个新手,试图通过创建一个简单的todo应用程序来学习flask,这是我试图执行的python代码下面的代码,但当我运行时,我得到了sqlite3.OperationalError: no such column: todo.task,我不确定我在这里错过了什么,请协助

代码语言:javascript
复制
import os
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy


project_dir = os.path.dirname(os.path.abspath(__file__))
# sqlite: // / prefix to tell SQLAlchemy which database engine we're using.
database_file = "sqlite:///{}".format(
    os.path.join(project_dir, "mydatabase.db"))

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = database_file
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

db = SQLAlchemy(app)


class Todo(db.Model):
    
    id = db.Column(db.Integer, primary_key=True)
    task = db.Column(db.String(100))


@app.route('/', methods=["GET", "POST"])
def samplehome():
    todo_list = Todo.query.all()
    print(todo_list)

    
    return render_template("index.html", todo_list=todo_list)

    # if request.form:
    #     print(request.form)
    #     submitted = Todo(id=request.form.get("id"),task=request.form.get("task"))
    #     try:
    #         db.session.add(submitted)
    #         db.session.commit()
    #     except Exception as e:
    #         print(e)
    #         db.session.rollback()
    



if __name__ == "__main__":
    db.create_all()
    app.run(host='0.0.0.0', debug=True)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 08:37:39

我认为问题是您没有在db.create_all()函数之后提交更改。你可以试着这样做。

代码语言:javascript
复制
if __name__ == "__main__":
    db.create_all()
    db.session.commit()
    app.run(host='0.0.0.0', debug=True)

还有一个类似的问题:SQLAlchemy create_all() does not create tables

除了你的问题,我不建议直接返回你的db类。你可以签出MVC设计模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69971126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档