摘要:第二種是顯式地調用方法響應調用視圖函數后,會將其返回值作為響應的內容。視圖函數返回值即為響應如果不想返回一個元組,視圖函數還可以返回對象。函數可接受一或多個參數和視圖函數的返回值一樣,并返回一個對象。
二.請求與響應 1、HTTP方法
GET: 瀏覽器告知服務器:只 獲取 頁面上的信息并發給我。這是最常用的方法。 POST: 瀏覽器告訴服務器:想在 URL 上 發布 新信息。并且,服務器必須確保數 據已存儲且僅存儲一次。這是 HTML 表單通常發送數據到服務器的方法。2、程序和請求上下文
請求上下文:
from flask import request @app.route("/useragent/") def userAgent(): user_agent = request.headers.get("User-Agent") return "Your browser is %s
" % user_agent
程序上下文:
from flask import current_app # print("current_app.name:",current_app.name) app_ctx = app.app_context() app_ctx.push() current_app.name app_ctx.pop()
沒激活程序上下文之前就調用 current_app.name 會導致錯誤,但推送完上下文 之后就可以調用了。 注意,在程序實例上調用 app.app_context() 可獲得一個程序上下文。也就是說, 有兩種方式來創建程序上下文: 1.第一種是隱式的:無論何時當一個請求上下文被壓棧時, 如果有必要的話一個程 序上下文會被一起創建。由于這個原因,你可以忽略程序上下文的存在,除非你需 要它。
第二種是顯式地調用 app_context() 方法:
from flask import Flask, current_app app = Flask(__name__) with app.app_context(): # within this block, current_app points to app. print current_app.name3、響應
Flask 調用視圖函數后,會將其返回值作為響應的內容。
@app.route("/") def index(): return "Bad Request
", 400
視圖函數返回值即為響應
如果不想返回一個元組,Flask視圖函數還可以返回Response對象。make_response()
函數可接受一或多個參數(和視圖函數的返回值一樣),并返回一個 Response 對
象。有時我們需要在視圖函數中進行這種轉換,然后在響應對象上調用各種方法,
進一步設置響應。下例創建了一個響應對象:
from flask import make_response @app.route("/response/") def response(): resp = make_response("Bad Request
",400) return resp
響應的兩種方法:
視圖函數直接返回一個元組 (response, status, headers)
視圖函數返回一個make_resonse()函數產生的響應對象
4、Cookiescookies的操作:
通過請求對象的 cookies 屬性來訪問 Cookies。(請求對象的 cookies 屬性是一個
內容為客戶端提交的所有 Cookies 的字典。)
通過響應對象的set_cookie方法來設置 Cookies。
@app.route("/cookie/") def cookie(): resp = make_response("set cookie") resp.set_cookie("name","myname") return resp5、請求鉤子
請求鉤子使用修飾器實現。 Flask 支持以下 4 種鉤子:
? before_first_request:注冊一個函數,在處理第一個請求之前運行。 ? before_request:注冊一個函數,在每次請求之前運行。 ? after_request:注冊一個函數,如果沒有未處理的異常拋出,在每次請求之后運行。 ? teardown_request:注冊一個函數,即使有未處理的異常拋出,也在每次請求之后運行。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40797.html
摘要:通過查閱了些資料,總算把它們的關系理清了。在這個過程中,服務器的作用是接收請求處理請求返回響應服務器是一類特殊的服務器,其作用是主要是接收請求并返回響應。正是為了替代而出現的。三結語最后以,,之間的對話結束本文。 剛轉行互聯網行業,聽到了許多名詞:Flask、Django、WSGI、 Nginx、Apache等等,一直無法搞清楚這些開源項目之間的關系,直至看到這篇文章后感覺醍醐灌頂,以...
閱讀 1214·2021-09-26 09:55
閱讀 3159·2019-08-30 15:55
閱讀 949·2019-08-30 15:53
閱讀 2286·2019-08-30 13:59
閱讀 2367·2019-08-29 13:08
閱讀 1098·2019-08-29 12:19
閱讀 3290·2019-08-26 13:41
閱讀 411·2019-08-26 13:24