flask路由
- application對(duì)象的add_url_rule()函數(shù)也可用于將URL與函數(shù)綁定
flask變量規(guī)則-URL中添加
- 變量部分標(biāo)記為<variable-name>
- Flask的URL規(guī)則基于Werkzeug的路由模塊代咸,確保形成的URL是唯一的
flask URL構(gòu)建
- url_for():用于動(dòng)態(tài)構(gòu)建特定函數(shù)的URL
http方法
- 該協(xié)議定義了從指定URL檢索數(shù)據(jù)的不同方法
方法 | 描述 |
---|---|
GET | 以未加密的形式將數(shù)據(jù)發(fā)送到服務(wù)器 |
HEAD | 和GET方法相同蹈丸,但沒(méi)有響應(yīng)體 |
POST | 用于將HTML表單數(shù)據(jù)發(fā)送到服務(wù)器。POST方法接收的數(shù)據(jù)不由服務(wù)器緩存 |
PUT | 用上傳的內(nèi)容替換目標(biāo)資源的所有當(dāng)前表示 |
DELETE | 刪除由URL給出的目標(biāo)資源的所有當(dāng)前表示 |
- 默認(rèn)情況下呐芥,F(xiàn)lask路由響應(yīng)GET請(qǐng)求逻杖,但可使用route()提供的方法參數(shù)來(lái)更改此首選項(xiàng)
flask 模板
- 視圖函數(shù)的兩個(gè)作用:一是處理業(yè)務(wù)邏輯,二是返回響應(yīng)內(nèi)容
- 模板其實(shí)是一個(gè)包含響應(yīng)文本的文件思瘟,使用占位符荸百。
- 渲染:使用真實(shí)值替換變量,再返回最終得到的字符串的過(guò)程滨攻,
- Flask使用Jinja2模板引擎來(lái)渲染模板
- 使用模板的好處:視圖函數(shù)只負(fù)責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)處理(業(yè)務(wù)邏輯方面)够话,而模板則取到視圖函數(shù)的數(shù)據(jù)結(jié)果進(jìn)行展示(視圖展示方面),代碼結(jié)構(gòu)清晰光绕,耦合度低女嘲。
flask靜態(tài)文件
- 將在應(yīng)用程序的/static中提供
- 特殊端點(diǎn)‘static’用于生成靜態(tài)文件的URL
Flask Request對(duì)象
重要屬性
- Form:一個(gè)字典對(duì)象,包含表單參數(shù)及其值的鍵值對(duì)
- args:解析查詢字符串的內(nèi)容诞帐,它是問(wèn)號(hào)之后的URL的一部分
- Cookies:保存Cookie名稱(chēng)和值的字典對(duì)象
- files:與上傳文件有關(guān)的數(shù)據(jù)
- method:當(dāng)前請(qǐng)求方法
將表單數(shù)據(jù)發(fā)送到模板
- 觸發(fā)函數(shù)接收的Form數(shù)據(jù)可以以字典對(duì)象的形式收集它并將其轉(zhuǎn)發(fā)到模板欣尼,然后再相應(yīng)的網(wǎng)頁(yè)上呈現(xiàn)它。
flask cookie
- Cookie以文本文件的形式存儲(chǔ)在客戶端的計(jì)算機(jī)上停蕉,目的是記住和跟蹤與客戶使用相關(guān)的數(shù)據(jù)愕鼓。
- Request對(duì)象包含cookie屬性,是所有cookie變量及其對(duì)應(yīng)值的字典對(duì)象慧起,客戶端已傳輸菇晃。
- 處理步驟為:設(shè)置cookie -> 獲取cookie -> 刪除cookie,讓cookie過(guò)期完慧,不是直接刪除
flask session
- session數(shù)據(jù)存儲(chǔ)在服務(wù)器上
- 會(huì)話是客戶端登錄到服務(wù)器并注銷(xiāo)服務(wù)器的時(shí)間間隔
- Session對(duì)象也是一個(gè)字典對(duì)象谋旦,包含會(huì)話變量和關(guān)聯(lián)值的鍵值對(duì)
重定向和錯(cuò)誤
- redirect函數(shù):返回一個(gè)響應(yīng)對(duì)象,并將用戶重定向到具有指定狀態(tài)代碼的另一個(gè)目標(biāo)位置
- 帶有錯(cuò)誤代碼的abort函數(shù)
消息閃現(xiàn)
- 提供了一個(gè)非常簡(jiǎn)單的方法來(lái)使用閃現(xiàn)系統(tǒng)向用戶反饋信息屈尼。閃現(xiàn)系統(tǒng)使得在一個(gè)請(qǐng)求結(jié)束的時(shí)候記錄一個(gè)信息,并且在下次(且僅在下一次中)請(qǐng)求時(shí)訪問(wèn)它拴孤。
- 使用flash方法來(lái)實(shí)現(xiàn)
flask常用擴(kuò)展包
- Flask-SQLalchemy:操作數(shù)據(jù)庫(kù)脾歧;
- Flask-script:插入腳本;
- Flask-migrate:管理遷移數(shù)據(jù)庫(kù)演熟;
- Flask-Session:Session存儲(chǔ)方式指定鞭执;
- Flask-WTF:表單司顿;
- Flask-Mail:郵件;
- Flask-Bable:提供國(guó)際化和本地化支持兄纺,翻譯大溜;
- Flask-Login:認(rèn)證用戶狀態(tài);
- Flask-OpenID:認(rèn)證估脆;
- Flask-RESTful:開(kāi)發(fā)REST API的工具钦奋;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和時(shí)間疙赠;
- Flask-Admin:簡(jiǎn)單而可擴(kuò)展的管理接口的框架