问题要求:在网站上的下拉选项中选一个音乐类型(Genre),点submit后会出现相关信息,如Album ID。不知道这个python代码在哪出问题了,我查询Genre的时候只能出现几个column,但是这些column都是空的,没有值,该怎么破呀。print也没print出东西来,不加print那句话结果也还是空的column。这个是数据库中的table。谢谢!!
这个是题目要求达到的结果。
这个是我目前的结果。
@app.route('/search/genre', methods = ['POST'])
def search_results():
if request.method == 'POST':
genre = request.form['genre']
sql_query = """
SELECT
Album.AlbumId AS 'Album ID',
Album.Title AS 'Album Title',
Artist.Name AS 'Artist Name',
SUM(Track.Milliseconds)/1000 AS 'Album Duration(Seconds)',
ROUND(SUM(Track.UnitPrice), 2) AS 'Album Value'
FROM Album JOIN Artist ON Album.ArtistId=Artist.ArtistId
JOIN Track ON Album.AlbumId = Track.AlbumId
JOIN Genre ON Track.GenreId = Genre.GenreId
WHERE Genre.GenreId=
(SELECT GenreId
FROM Genre
WHERE Genre.Name=?)
GROUP BY Track.AlbumId;
"""
con=sqlite3.connect("iMusic.db")
con.row_factory=sqlite3.Row
cur=con.cursor()
cur.execute(sql_query, (genre,))
albums=cur.fetchall()
print(albums)
return render_template('results.html', genre=genre, albums=albums)
把SQL语句拷贝到数据库执行一下,确保SQL语句没问题。