【发布时间】:2021-09-02 05:13:45
【问题描述】:
我正在使用 Flask 制作一个网络应用程序,并希望在单击按钮并且页面不重新加载时调用此函数:
@app.route('/add_song_to_playlist')
def add_song_to_playlist(pl_id, s_id):
sp = songs_playlists(song_id = s_id, playlist_id = pl_id)
db.session.add(sp)
db.session.commit()
return "nothing"
但是它需要两个参数,我不知道如何在 ajax 函数中传递它们。我还需要它们像带有 {{ }} 的内联 python 代码。
这是模板和按钮中的 ajax 函数,以及我尝试作为 getJSON() 采用的“数据”参数传递的内容:
<div class="dropdown-menu dropdown-menu-right float-left">
<a class="dropdown-item" href="{{ url_for('make_playlist') }}"> Create a new playlist </a>
{% for p in pl %}
<form>
<a class="dropdown-item" href="#" id=add_song> {{ p.playlist_name }} </a>
</form>
<script type=text/javascript>
$(function() {
$('a#add_song').on('click', function(e) {
e.preventDefault()
$.getJSON('/add_song_to_playlist', );
return false;
});
});
</script>
</div>
{% endfor %}
但似乎不起作用,我什至没想到它会起作用。我阅读了关于这个函数的 jquery 文档,但它没有提到将两个参数作为 python 代码传递(可能是因为我缺乏 JS 知识)。任何帮助将不胜感激!
【问题讨论】:
-
您可以在 URL、查询参数或正文中传递参数。有许多不同的格式可以在正文中传递参数。 Flask 将 URL 段传递给函数调用,例如
@app.route('/add_song_to_playlist/<pl_id>/<s_id>')
标签: javascript python jquery ajax flask