Flask WTForms中FieldList结合Formfield的使用方法,提交多行表单数据

本文介绍如何在Flask应用中使用WTForms的FieldList结合Formfield处理多行表单数据。讨论了FieldList的属性如min_entries、max_entries以及操作方法如append_entry()和pop_entry()。同时,提到了在HTML和JS中动态生成及管理表单行的方法,虽然表单验证的特定格式设置相对复杂。
摘要由CSDN通过智能技术生成

WTForms中FieldList的使用,可提交多行表单数据

官方文档

authors = FieldList(StringField('Name', [validators.DataRequired()]))

  • min_entries 最小个数
  • max_entries 能接受的最大个数
  • append_entry() 添加
  • pop_entry() 删除最后一个

FieldList 渲染出的html,其id和name会是:valve-0、valve-1这种形式,如果是用FormField应用在别的表单,就是root_ud-0-dap这样。


forms.py

class UserDefined(FlaskForm):
    dap = IntegerField('天数', render_kw={
   'digits': 'true', 'required': 'true'})
    value = DecimalField('值', places=2, render_kw={
   'number': 'true', 'required': 'true'})
class UserForms(FlaskForm):
	...
    root_ud = FieldList(FormField(UserDefined))
    lai_ud = FieldList(FormField(UserDefined))
    ...

views.py

form = UserForms()
# 数据存入的时候
if form.validate_on_submit():
	if lr_user_defined: # 目前是删除以前的所有字段,如果有人有什么好方法感谢分享。
    	for i in lr_user_defined:
        	db.session.delete(i)
    for r in form.root_ud:
        r_dap = r.dap.data
        r_value = r.value.data
        r_u = TRootDepthUserDefined(plant_id=
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Flask 框架提交表单,您可以按照以下步骤进行操作: 1. 导入必要的模块: ```python from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import StringField, SubmitField ``` 2. 创建 Flask 应用程序和秘钥: ```python app = Flask(__name__) app.config['SECRET_KEY'] = 'your_secret_key' ``` 3. 创建表单类,继承自 `FlaskForm` 并定义表单字段: ```python class MyForm(FlaskForm): name = StringField('Name') submit = SubmitField('Submit') ``` 4. 创建路由处理函数,用于渲染表单和处理表单提交: ```python @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate_on_submit(): name = form.name.data # 在这里可以对表单数据进行处理 return f"Hello, {name}!" return render_template('index.html', form=form) ``` 5. 创建 HTML 模板文件 `index.html`,用于渲染表单和接收用户输入: ```html <!DOCTYPE html> <html> <body> <h1>Submit Form</h1> <form method="POST" action="/"> {{ form.csrf_token }} {{ form.name.label }} {{ form.name(size=20) }} {{ form.submit() }} </form> </body> </html> ``` 6. 运行 Flask 应用程序: ```python if __name__ == '__main__': app.run() ``` 这样,当您访问应用程序的根路径时,将显示一个表单用于输入名称。提交表单后,将显示一个包含问候消息的页面。 请注意,上述代码仅提供了一个基本的示例,您可以根据自己的需求进行修改和扩展。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值