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