如何将数据(id)放入表单(wtforms)并将其返回submi

2024-10-01 00:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉wtforms,所以我非常感谢你的帮助。在

我需要显示图书名称和每个放在旁边的“删除”按钮。我读过wtforms crash course,但我不知道如何用它来解决我的问题。在

所以我决定用另一种方式来做——我最好的想法是用id和name在提交返回id时将dict呈现到模板中,但是我还是做不到。下面是代码示例。在

是的视图.py在

@application.route('/delete', methods=['GET', 'POST'])
def delete():
    books_lib = mydatabase.get_all_books()
    form = DeleteForm(request.form)
    if request.method == 'POST':
        delete_id = form.id.data
        mydatabase.del_book(delete_id)
        return render_template('delete.html', form = form, books_lib = books_lib)
    return render_template('delete.html', form = form, books_lib = books_lib)

它是模板

^{pr2}$

这是形式

class DeleteForm(Form):
     book = TextField("Book name", [validators.Length(min=2, max=25)])
     id = HiddenField("id")

Tags: nameform模板idreturnrequestmylib
1条回答
网友
1楼 · 发布于 2024-10-01 00:33:50

下面是我怎么做的。在

模板

^{1}$

查看

^{pr2}$

的url_是一个生成url并将其绑定到函数的烧瓶函数。在

哦。。。。一言以蔽之。在

  1. 模板使用url_for函数生成删除路径。在
  2. 当您访问页面时,将调用delete函数。在
  3. 消息闪烁到模板说删除完成。在

回答你最初的问题。。。。在

如果您只想将一个ID列表传递到您的模板。。。。在

首先,创建显示函数。在

@app.route('/index')
def index():
    posts = Post.query.order_by(Post.pub_date.desc())  #SQLAlchemy query.
    return render_template('index.html', posts=posts) #sends all posts to template.

现在在模板中,您可以生成邮政编码. 在

    {% for post in posts %}
        {{post.id})
    {% endfor %}

要在列表中的每个项目旁边添加删除链接,请使用url_for。在

{% for post in posts %}    
<p>{{post.id}) <a href="{{ url_for('delete_post', id=post.id) }}">delete</a></p>
{% endfor %}

在本例中,我使用post id而不是发布.url为了确定我想删除的具体帖子,别忘了修改你的@应用程序路径在你的删除函数中。在

@app.route('/<int:id>/delete')

请注意,此解决方案不需要表单。如果要使用复选框进行批量删除,则只需要表单。在

相关问题 更多 >