我有一个html模板,它循环遍历字典列表并提供键的值:
{% for x in data[0:5] %}
<td id='{{data[x]}}'>
<p> {{ x['score'] }} </p>
<a href="{{x['url']}}"> {{ x['title'] }} </a>
<br>
<a href='#' id='save_post'><button> Add To Favorites </button></a>
</td>
{% endfor %}
这段html底部的标记是调用ajax请求将此特定字典保存到数据库中。因此,基本上如果按下按钮,它会将该索引(即字典)保存到数据库中。
我尝试了一些不同的东西,但我现在拥有的是:
@app.route('/add_to_favorites', methods=['POST'])
def add_to_favorites(post):
data = get_info()
post = data[x]
fav= Favorite(title=post.get('title'), url=post.get('url'), score=post.get('score'), user_id=current_user.id)
db.session.add(fav)
db.session.commit()
然而我得到了500回复而帖子没有保存。
如何让我的字典成为一个对象,以便我可以使用模板上的按钮将对象保存到数据库?我在这做错了什么?
AJAX请求:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type=text/javascript>
$(function() {
$('a#add_to_favorites').bind('click', function() {
$.ajax({
type : 'POST',
url : '/add_to_favorites'
});
console.log('working');
});
});
</script>