基于数组的烧瓶形式服务器端生成

flask form server side generation based on array

我正在尝试创建一个具有多种不同形式的网站。这些表单大部分是相同的,它们只是每个都有一些用户必须输入的额外的不同变量,即它们都有名称、描述和文件字段,但每个都有一些不同的额外字段。我想知道是否有办法从 Flask 中的单个表单动态生成这些字段。例如

    from flask_wtf import FlaskForm
    from wtforms import StringField, FileField, TextField, SubmitField
    
    class dataEntryForm(FlaskForm, variables):
        name = StringField('Name', [DataRequired()])
        description = TextField('Description')


        for variable in variables:
            #generate a field with the name variable


        uploadFile = FileField('File', [DataRequired()])
        submit = SubmitField('Enter Job')

如果我理解你的顾虑,你可以定义一个基础 class UserForm 例如,它包含公共字段,然后使用 Mixins 扩展其属性(阅读更多 here).根据您的逻辑,您可以根据需要定义许多 Mixins

class UserForm(DateStampsFormMixin, SocialAccountsFormMixin, FlaskForm):
    name = StringField('Name', [DataRequired()])
    description = TextField('Description')
    uploadFile = FileField('File', [DataRequired()])
    submit = SubmitField('Enter Job')

2以下Mixins:

class SocialAccountsFormMixin(FlaskForm):
    website_url = StringField('website url', [..])
    twitter_url = StringField('twitter url', [..])
    github_url = StringField('github url', [..])
    [..]

class DateStampsFormMixin(FlaskForm):
    created_at = DateTimeField('Created at', [..])
    updated_at = DateTimeField('Updated at', [..])