1. 程式人生 > 其它 >flask常用知識點(不知道今天寫,多久還記得)

flask常用知識點(不知道今天寫,多久還記得)

app.route()裝飾器可以確定把裝載在哪個url上

from flask import Flask

app = Flask(name)

@app.route('/')
def hello_word():
return 'Hello World'

if name == "main":
app.run()
# 或者可以使用
app.run(host='0.0.0.0',port=900) # 指定埠

render_template實現模板渲染

通過把要載入的模板檔案和引數傳給該方法,即可實現HTML的自動渲染
當然,一個函式也可以通過多個route()裝飾器繫結到多個URL上

一般所有的模板檔案都儲存在templates資料夾下

Markup轉換變數中的特殊字元

有些特殊字元,如(<、>、空格、/等),會被HTML客戶端(瀏覽器)解釋成特殊含義。
這時候,我們可以通過Markup()函式將這些字串做轉義處理,然後傳給render_templates()函式。

重定向和錯誤處理

重定向(Redirect)是指將一個網路請求重新指定URL並轉到其他地址的技術。
如果想中止一個請求並返回錯誤,而不是重定向到其他地址,則可以使用abort();直接在函式中使用abort(400) # 400是標準的HTTP請求錯誤,其含義為請求無效
當然,abort()函式僅僅為客戶端返回400錯誤,並沒有返回自定義的處理介面,這時候可以新增一個
errorhandler()裝飾器用來捕獲錯誤,並在下方新增函式用來定義捕捉錯誤的介面

帶變數的路由

可以直接在url引數中定義相關的變數,用一對<>這樣的括號包括寫在@app.route()裝飾器內即可。括號裡面引數可以使用到return中,以及render_templates中。兩次使用的引數必須相同

url中的結尾

url中結尾通常分為有斜槓和無斜槓;
結尾有斜槓輸入url訪問時結尾有無斜槓均可訪問。
結尾無斜槓,輸入url訪問時,一定要無斜槓,不然,有斜槓的話就無法訪問到頁面

HTTP方法繫結

在flask中,路由預設使用get方法進行路徑訪問。
通過修改route中的引數method,他是一個列表,裡面的引數是字串,所以哪些字串就是get,post,put等方法。
在裝飾器下方的函式中通過request.method=='某個方法,就可以進行其他的操作'
注意:request是Flask框架的一個全域性物件,可以獲得很多HTTP請求的客戶端相關的資訊。

路由地址反向生成

url_for()函式來實現這個功能。該函式是單獨的,並沒有寫在裝飾器函式之內。url_for函式的第一個引數是需要獲取URL的函式名,URL中如果有變數,可以在url_for中新增引數來實現對變數的賦值。

使用這個函式的原因

1.反向解析比硬編碼有更好的可讀性和可維護性。比如,當需要更換路由函式中URL的地址時,無須再更改和呼叫url_for處的程式碼。
2.url_for會自動處理必須的特殊字元轉換和Unicode編碼轉換。如空格就會自動解析為20%.

會話上下文

是Web伺服器上基於Cookie的物件,它提供了為同一個客戶端在多次請求之間共享資訊資訊的方式。
在Web環境中,會話(Session)是一種客戶端與伺服器保持狀態的解決方案。同一使用者的多個請求共享同一個會話
會話通常通過Cookie來實現:
在flask框架中使用flask.session物件操作會話
注意:flask.session物件只有在請求的處理環境中才能被呼叫

flask.session物件還維護自生的狀態

new:判斷本次請求的Session是否是新建fied:的
modified:判斷本次請求中是否修改過session鍵值

應用全域性物件

一般應用在:多個響應函式之間共享資料;
可以通過flask.g來實現。

請求上下文

請求上下文主要是在伺服器端獲得從客戶端提交的資料

努力拼搏吧,不要害怕,不要去規劃,不要迷茫。但你一定要在路上一直的走下去,儘管可能停滯不前,但也要走。