使用Flas标记和自动填充

2024-06-16 12:55:33 发布

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

我正在努力思考如何使用带有烧瓶和WTForms的标记系统。在

基本上我有一个关键字列表。这些关键字有一个层次结构(例如:I选择芝加哥。伊利诺伊州和美国会自动添加作为附加关键字)。在

所以我试图找到一种方法,让用户输入一个自动填充列表。然后,这个表单生成关键字并将其带回烧瓶中,每个关键字用作自己的变量。

对于WTForms,我们需要“id”将其带回烧瓶中,但形式类似标签.js或者选择2如何将每个标记分隔成自己的id?或者有更好的方法来解决这个问题? autocomplete form

烧瓶

class ReusableForm(Form): 
    example4 = StringField('example4')

@app.route("/editor", methods=['GET', 'POST'])

def hello():
    form = ReusableForm(request.form)
if request.method == 'POST':
    example4 = request.form['example4']

    if form.validate():
    # Return and do something with each keyword
    # tag1 = 'Alaska'
    # tag2 = 'Hawaii'
    # tag3 = 'California'  

Tags: 方法标记formid列表if烧瓶层次结构
1条回答
网友
1楼 · 发布于 2024-06-16 12:55:33

您需要使用一个动态表单,该表单将接受发布到Flask的可变数量的标记。在

{

class TagForm(NoCsrfForm):
    tag_id = IntegerField(widget=HiddenInput(), default=0)
    tag_name = StringField(widget=HiddenInput(), [InputRequired(), Length(max=256)])

class MyDynamicForm(Form):
    some_field = StringField('Foo', [InputRequired()])
    some_other_field = TextAreaField('Bar', [InputRequired()])
    some_tags = FieldList(FormField(TagForm))

views.py

^{pr2}$

index.html

<input id="some_tags-0-tag_name"></input>

每个输入id必须使用以下语法:"[some_tags]-[nth tag]-[tag_name]"。希望您最了解如何创建输入及其id,同时考虑到可用的js框架。在

N.B.tag_id = IntegerField(widget=HiddenInput(), default=0)对于接收已发布的输入不是必需的,但是如果您将标记存储在数据库中,并且以后希望用存储的标记填充表单,则此选项非常有用。在

相关问题 更多 >