插入后看似自动删除的行

Rows seemingly automatically deleted after insert

我正在尝试能够简单地 post 到 table。我的 db 被定义为 SQLAlchemy(app) 在设置了一些带有密码和诸如此类的 app.config 字段之后。

检索数据似乎工作正常。如果我 GET 页面,我会得到预期的结果。但是,POST 似乎不起作用。但是,它不会抛出异常。一切正常,除了数据库中似乎没有新记录。

奇怪的是,当我删除行 return redirect('/projects') 时,它似乎确实按照我想要的方式添加了新记录。但是,当我刷新页面时,记录又消失了。几乎就像记录被正确插入但随后被自动删除一样。我还尝试直接在 Azure 门户中打印 SQL 和 运行,再次正常运行。这里发生了什么?我的代码如下:

@app.route("/projects", methods=['GET', 'POST'])
def projects_index():
    if request.method == 'POST':
        result = db.session.execute(f"""
            INSERT INTO projects (name) VALUES ('{request.form['name']}')
        """)
        return redirect('/projects')

    db_result = db.session.execute('SELECT * FROM projects')
    projects = [dict(project) for project in db_result]
    return render_template('projects.html', projects = projects)

插入后您需要将更改提交到数据库。

@app.route("/projects", methods=['GET', 'POST'])
def projects_index():
    if request.method == 'POST':
        result = db.session.execute(f"""
            INSERT INTO projects (name) VALUES ('{request.form['name']}')
        """)
        db.session.commit()
        return redirect('/projects')

    db_result = db.session.execute('SELECT * FROM projects')
    projects = [dict(project) for project in db_result]
    return render_template('projects.html', projects = projects)