Django Formsets 是用于处理多个表单的一个强大的工具,它可以让你在一个视图中处理多个表单实例。虽然 Django Formsets 通常与 Django 的 ORM 一起使用,但你可以将其与 Flask 一起使用。以下是如何在 Flask 中使用 Django Formsets 的步骤:
pip install Flask-WTF
from flask import Flask, render_template, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
from django_formset_formsets import formset_factory
from myapp.forms import MyForm
FlaskForm
:class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
submit = SubmitField('Submit')
formset_factory
函数创建一个 Django Formsets 实例:MyFormSet = formset_factory(MyForm, min_num=1, max_num=10, extra=1)
这里,min_num
表示至少需要创建的表单实例数量,max_num
表示最多可以创建的表单实例数量,extra
表示默认情况下创建的额外表单实例数量。
@app.route('/', methods=['GET', 'POST'])
def index():
formset = MyFormSet()
if formset.validate_on_submit():
for form in formset:
name = form.name.data
# 在这里处理表单数据,例如保存到数据库
print(name)
return redirect(url_for('success'))
return render_template('index.html', formset=formset)
{% for form in formset %}
<form method="post">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name() }}
{{ form.submit() }}
</form>
{% endfor %}
@app.route('/success')
def success():
return 'Formsets submitted successfully!'
现在,你已经成功地将 Django Formsets 与 Flask 一起使用。你可以根据需要修改表单类、视图函数和模板以适应你的应用需求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。