1. 程式人生 > >Flask框架——上下文

Flask框架——上下文

上下文

上下文:相當於一個容器,儲存了Flask程式執行過程中的一些資訊。
Flask有兩種上下文:請求上下文和應用上下文。
## 請求上下文
在flask中,可以直接在檢視函式中使用request這個物件進行獲取相關資料,而request就是請求上下文的物件,儲存了當前本次請求的相關資料,請求上下文的物件有:request,session。
request:封裝了HTTP請求的內容,針對的是http請求,舉例:user = request.args.get('user'),獲取的是get請求的引數。
session:用來記錄請求會話中的資訊,針對的是使用者資訊。舉例:session['name'] = user.id,可以記錄使用者資訊,還可以通過session.get('name')獲取使用者資訊。
請求上下文:request(記錄客戶端和服務端互動的資料)

from flask import Flask,request
app = Flask(__name__)

# 請求上下文物件:request和session
# rquest是Flask內建的請求上下文物件
# request物件常用的屬性:args/form/method/url/headers/cookies
# args:查詢字串,url位址列中,?後面,以=號進行傳值,&進行分隔的資料
# request的基本用法:args
@app.route('/')
def index():
    #獲取get請求的查詢字串引數
    # 前端的url請求地址:http://www.127.0.0.1/?name = wax
    # 此時下面的程式碼會在控制檯輸出wax。
    name = request.args.get('name')
    print('name')
    # 輸出url地址
    print(request.url)
    # 輸出http的請求方法
    print(request.method)
    # 輸出請求頭、
    print(request.headers)
    # 輸出表單引數的請求,表單的儲存是以key/value的形式儲存的。即 'name' = 'wax'
    name = request.form.get('name')
    print(name)
    return 'hello world'

# form是指表單引數的請求
@app.route('/form/')
def demo_form():

    return 'demo_form'



if __name__ == '__main__':
app.run()

請求上下文:session

應用上下文:flask程式執行過程中的資訊
它的主要作用是幫助request獲取當前的應用,隨request而生,隨rewquest而滅。有的文件會介紹說這是一個全域性變數,但是具體來說是一個執行緒內部的全域性變數。可以用來記錄專案日誌。

g變數:
也是flask程式全域性的一個臨時變數,臨時傳遞一些資料。