gpt4 book ai didi

python - 将 ID 从 HTML 发送到 Flask Python

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:59 25 4
gpt4 key购买 nike

我是 Flask - Python 的初学者。现在我正在创建评论功能。在下面的代码中,我可以列出博客或类似内容的所有评论。但是现在,我想创建用于删除每个博客的按钮。请告诉我如何将 blog_id(现在保存为 user_comment._id)发送到服务器以及如何在服务器上请求它。

       {% for user_comment in user_comments %}
<form action="{{ url_for('comments.del_comment') }}" method="post">
<ul class="comments-list">
<li class="comment">
<a class="pull-left" href="#">
<img class="avatar" src="http://bootdey.com/img/Content/user_1.jpg" alt="avatar">
</a>
<div class="comment-body">
<div class="comment-heading">
<h4 class="user">{{ user_comment.email }}</h4>
<h5 class="time">{{ user_comment.created_date }}</h5>
</div>
<p>{{ user_comment.comment }}</p>
</div>
</li>
<li>
<button type="submit" class="btn btn-primary">Delete</button>
</li>
</ul>
</form>
{% endfor %}

最佳答案

实际上,您可以将每条评论的 ID 存储在按钮的数据属性中。然后你定义一个像'/comments/<id>/delete/'这样的路线删除评论。为了防止仅通过在浏览器中调用 URL 来删除评论,我建议将路由限制为仅使用 DELETE 方法并通过 ajax 请求调用它。

因此将以下路由添加到您的 views.py

@main.route('/comments/<comment_id>/delete', methods=['DELETE'])
def delete_comment(comment_id):
comment = Comment.query.get(comment_id)
if comment is None:
return jsonify(
status='error', message='no comment with id {}'.format(comment_id))
db.session.delete(comment)
db.session.commit()
return jsonify(status='ok')

你的删除按钮应该是这样的:

<button href="" class="btn btn-primary delete_comment" data-id="{{ user_comment.id }}/>

在您的模板中添加一个小的 ajax 请求:

<script>
$(document).ready(function() {

$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};

// Delete comment
$('.delete_comment').click(function(event) {
var comment_id = $(this).data('id');
var url = $SCRIPT_ROOT + '/comments/' + comment_id + '/delete';
$.ajax({
url: url,
type: 'DELETE',
}).done(function(data) {
location.reload();
});
});
});
</script>

关于python - 将 ID 从 HTML 发送到 Flask Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40628078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com