【发布时间】:2021-05-12 18:08:39
【问题描述】:
我使用了一个 for 循环来填充 spotify 歌曲链接并将它们嵌入到网页中。在每首歌曲之后是一个名为“喜欢”和“不喜欢”的按钮 - 这是 html:
{% for (song_name, song_uri, submission_id) in songs: %}
<br>
<form action="" method="post">
<div name="song" value="{{submission_id}}, {{song_name}}"><iframe
src="https://open.spotify.com/embed/track/{{song_uri}}" height="80" frameborder="0"
allowtransparency="true" allow="encrypted-media"></iframe>
<input type="submit" value="Like"></input>
<input type="submit" value="Dislike"></input>
</form>
{% endfor %}
假设列出了 4 首歌曲,submission_id 分别为 1、2、3、4。 然后我想计算用户是否点击了特定歌曲的“喜欢”或“不喜欢”按钮。
如果用户在歌曲 #1 (submission_id = "1") 上点击“Like”,那么我将提取该歌曲的链接并在我的后端使用它。我不确定如何让每个按钮与我的烧瓶应用程序的请求相对应,所以当用户点击“喜欢”时,我知道他们的意思是歌曲 #1 (submission_id = "1")。
到目前为止,我已经在我的烧瓶应用程序中尝试过这个:
@app.route('/curator', methods=["GET","POST"])
def curator():
songs = load_songs.load_songs()
if request.method == "POST":
song_number = request.form['submission_id']
然而,这会导致以下错误:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a
request that this server could not understand.
KeyError: 'submission_id'
任何建议表示赞赏
【问题讨论】:
-
我在您的表单中没有看到任何带有
name="submission_id"的输入。您应该了解 HTML 表单的工作原理。
标签: javascript python html django flask