bootstrap中使用wtform,自定義表單

weixin_34120274發表於2016-09-02

自定義表單一定要加上{{ form.hidden_tag() }}

#表單
class PostForm(Form):
    body = TextAreaField('有什麼事新鮮事分享一下吧!',validators=[Required(),Length(2,999)])
    submit = SubmitField('釋出')
#普通方法,一鍵新增
{{  wtf.quick_form(form) }}
#自定義使用表單
    <form method="POST" action="{{ request.url }}">
        內容:
        {{ form.hidden_tag() }}
        {{ form.body(class='form-control',style='height:200px;') }}
        <br>
        {{ form.submit(class='btn btn-default') }}
    </form>

自定義表單一定要加上{{ form.hidden_tag() }},否則會提交不成功。
這一行程式碼實質上是新增了一個csrf_token,這是一個隨機生成的token,用來防範黑客攻擊。

<input id="csrf_token" name="csrf_token" type="hidden" value="1472826290##c774ba0a05ce0ea624b56c1eceda219d679b2b0c">

CSRF 保護

Flask-WTF 表單保護你免受 CSRF 威脅,你不需要有任何擔心。儘管如此,如果你有不包含表單的檢視,那麼它們仍需要保護。

相關文章