Flask WTF-forms添加select和textarea

Jim*_*mmy 5 python forms flask wtforms flask-wtforms

我正在尝试制作一个生成以下HTML的烧瓶形式:

<input type="text" name="title" class="field">
<textarea class="field"></textarea>
<select name="status">
    <option value="active">Active</option>
    <option value="inactive">Inactive</option>
</select>
Run Code Online (Sandbox Code Playgroud)

到目前为止,因为我是python的新手,所以我做到了这一点.

  {% from "forms/macros.html" import render_field %}
  <form method="POST" action="." class="form">
  {{ render_field(form.title, class="input text") }}
Run Code Online (Sandbox Code Playgroud)

我的问题是,到目前为止我对标题字段是否正确,并假设我有,请有人请解释我如何获得textarea和selectfield?我已经阅读了文档,我发现几乎无法理解它.

Paw*_*ski 7

在我看来,最好定义不在模板中但在控制器中的表单.
示例表单定义:

class CommentForm(Form):
    language = SelectField(u'What You Want', choices=CAN_BE_FILLED_LATER_ON)
    code     = TextAreaField()
Run Code Online (Sandbox Code Playgroud)

以后你需要的只是 -

  1. 通过以下方式初始化表单:

    comment_form = CommentForm()
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将其传递给模板:

    return render_template('post_show.jinja2.html', comment_form=comment_form)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在模板中渲染表单:

    <div class="form-group" id='cg-{{comment_form.email.id}}'>
       {{comment_form.email.label(class='col-lg-2 control-label',for=comment_form.email.id)}} 
       <div class="col-lg-9"> 
         {{comment_form.email(class='form-control')}} 
         <span class="help-block" id='hl-{{comment_form.email.id}}'></span> 
       </div> 
    </div
    
    Run Code Online (Sandbox Code Playgroud)