国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python Flask-web表單使用詳解

2020-02-16 10:46:21
字體:
來源:轉載
供稿:網友

Flask-WTF擴展可以把處理web表單的過程變成一種愉悅的體驗。

一、跨站請求偽造保護

默認情況下,Flask-WTF能夠保護所有表單免受跨站請求偽造的攻擊。惡意網站把請求發送到被攻擊者已登錄的網站時就會引起CSRF攻擊。

為了實現CSRF保護,Flask-WTF需要程序設置一個密鑰。Flask-WTF使用這個密鑰生成加密令牌,再用令牌驗證請求中表單數據的真偽。設置密鑰的方法如下所示:

app = Flask(__name__)app.config['SECRET_KEY']='hard to guess string'

二、表單類

使用Flask-WTF時,每個web表單都由一個繼承自Form的類表示。這個定義表單中的一組字段,每個字段都用對象表示。字段對象可附屬一個或多個驗證函數。驗證函數用來驗證用戶提交的輸入值是否符合要求。

#!/usr/bin/env python#簡單的web表單,包含一個文本字段和一個提交按鈕 from flask_wtf import Formfrom wtforms import StringField,SubmitFieldfrom wtforms.validators import Required class NameForm(Form):  name = StringField('What is your name?',validators=[Required()])  submit = SubmitField('Submit')

StringField類表示屬性為type="text"的<input>元素,SubmitField類表示屬性為type="submit"的<input>元素。

WTForms支持的HTML標準字段

WTForms驗證函數

四、把表單渲染成HTML

表單字段是可用的,在模板中調用后會渲染成HTML。假設視圖函數把一個NameForm實例通過參數form傳入模板,在模板中可以生成一個簡單的表單,如下所示:

<form method="POST">  {{ form.hidden_tag() }}  {{ form.name.label }} {{ form.name() }}  {{ form.submit() }}</form>
<form method="POST">  {{ form.hidden_tag() }}  {{ form.name.label }} {{ form.name(id='my-text-field') }}  {{ form.submit() }}</form>

Flask-Bootstrap提供了一個非常高端的輔助函數,可以使用Bootstrap中預先定義好的表單樣式渲染整個Flask-WTF表單,而這些操作只需調用一次即可完成。

{% import "boostrap/wtf.html" as wtf %}{{ wtf.quick_form(form) }}
#使用Flask-WTF和Flask-Bootstrap渲染表單 {% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %} {% block title %}Flasky{% endblock %} {% block page_content %}<div class="page-header">  <h1>Hello,{% if name %}{{ name }}{% else %}Stranger{% endif %}</h1></div>{{ wtf.quick_form(form) }}{% endblock %}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣庄市| 尖扎县| 奎屯市| 石景山区| 定兴县| 佛坪县| 华阴市| 平邑县| 林芝县| 高州市| 郧西县| 息烽县| 临澧县| 泰顺县| 常宁市| 宣威市| 柳江县| 临桂县| 元氏县| 扎囊县| 南溪县| 深州市| 子长县| 辽中县| 华宁县| 宜川县| 达州市| 丘北县| 施甸县| 平和县| 徐闻县| 汪清县| 顺昌县| 西盟| 湟源县| 鸡东县| 温泉县| 玉屏| 林口县| 霞浦县| 启东市|