1. 程式人生 > >Flask web 開發新手遇到的坑

Flask web 開發新手遇到的坑

editor tegra led inf 應該 with def 用戶 sub

在Flask的開發的學習過程中,我用的是李輝大神的狼書,在實際學習中遇到的以下坑,與各位分享:

1.flask 的 Submit 按鈕提交後並不會跳轉,仍然停留在原始輸入界面,部分代碼如下:

forms.py 表單函數

1 class RichTextForm(FlaskForm):
2     title = StringField(Title, validators=[DataRequired(), Length(1, 50)])
3     body = CKEditorField(Body, validators=[DataRequired()])
4     submit = SubmitField(
Publish)

app.py 視圖函數

1 @app.route(/ckeditor, methods=[GET, POST])
2 def integrate_ckeditor():
3     form = RichTextForm()
4     if form.validate_on_submit():
5         title = form.title.data
6         body = form.body.data
7         flash(your post is post)
8         return render_template(
post.html, title=title, body=body) 9 return render_template(ckeditor.html, form=form)

渲染模版 ckeditor

{% block content %}
<h1>Integrate CKEditor with Flask-CKEditor</h1>
<form method="post">
    {{ form.csrf_token }}
    {{ form_filed(form.title) }}
    {{ form_filed(form.body) }}
    {{ form.submit }}
</form> {% endblock %}

運行後的界面

技術分享圖片

問題描述:

當輸入內容點擊Submit後,依然停留在此界面,即並不會跳轉至‘post.html‘模版,說明是IF 語句出錯,但

form.validate_on_submit 相當於 用戶提交表單and數據通過驗證 ,問題應該是數據通過驗證這一塊,排查其余代碼無問題後,最終發現’ckedior.html‘中的語句
{{ form.csrf_token }} 出錯,即CSRF令牌拼寫錯誤,故無法通過驗證,但程序並不會報錯,對於初學者是比較大的坑,共勉!!

Flask web 開發新手遇到的坑