插入后看似自动删除的行
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)
我正在尝试能够简单地 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)