Flask web 開發新手遇到的坑
阿新 • • 發佈:2019-01-01
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 開發新手遇到的坑