我正在开发一个带有Flask的音乐数据库应用程序,我有一个页面,我可以在其中插入一张唱片到数据库中,这样它就可以正常工作了。昨天,我创建了一个可以编辑记录值的页面。对于路由,我从另一个更简单的应用程序中复制了代码,并为这个应用程序重新编写了代码。当我访问编辑页面时,它用记录的当前值填充文本框…但是当我更改任何项目并提交它时,什么都不会发生。它在提交之后呈现我在路由中指定的页面,但是当我查询表时,没有任何改变。在
路线如下:@app.route('/edit_album//', methods=['GET', 'POST'])
def edit_album(catno):
cur = mysql.connection.cursor()
# Get article by catno
result = cur.execute("SELECT * FROM albums WHERE catno = %s", [catno])
album = cur.fetchone()
form = AlbumForm()
form.artist.data = album['artist']
form.title.data = album['title']
form.year.data = album['year']
form.rlabel.data = album['label']
form.genre.data = album['genre']
if request.method == 'POST':
# album art
#cover =
catno = album['catno']
artist = form.artist.data
title = form.title.data
year = form.year.data
rlabel = form.rlabel.data
genre = form.genre.data
# format (lp or tape)
# Create Cursor
cur = mysql.connection.cursor()
# Execute cursor
cur.execute("UPDATE albums SET artist=%s, title=%s, year=%s, label=%s, genre=%s WHERE catno=%s", (artist, title, year, rlabel, genre, catno))
# Commit to DB
mysql.connection.commit()
# Close DB connection
cur.close()
return redirect(url_for('view_album', catno=catno))
return render_template('edit_album.html', album=album, form=form)
下面是实际编辑页面:
^{pr2}$
我昨晚从搜索中得到的唯一一点是,我可能有两个到数据库的连接是打开的,但是我没有,因为我只是在脚本的开头有一个连接。用太多的光标不会是个问题吧?在
否则,这是我在表单中使用Flask WTF模块的第一个应用程序,那么我使用它会不会有什么问题?如果有问题的话,这节课是这样的:
^{3}$
这个应用程序不会抛出任何错误,所以我不确定发生了什么,或者我只是忽略了一些东西。在