亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Flask三之請求與響應(yīng)

HackerShell / 3187人閱讀

摘要:第二種是顯式地調(diào)用方法響應(yīng)調(diào)用視圖函數(shù)后,會將其返回值作為響應(yīng)的內(nèi)容。視圖函數(shù)返回值即為響應(yīng)如果不想返回一個元組,視圖函數(shù)還可以返回對象。函數(shù)可接受一或多個參數(shù)和視圖函數(shù)的返回值一樣,并返回一個對象。

二.請求與響應(yīng) 1、HTTP方法
GET: 瀏覽器告知服務(wù)器:只 獲取 頁面上的信息并發(fā)給我。這是最常用的方法。
POST: 瀏覽器告訴服務(wù)器:想在 URL 上 發(fā)布 新信息。并且,服務(wù)器必須確保數(shù)
      據(jù)已存儲且僅存儲一次。這是 HTML 表單通常發(fā)送數(shù)據(jù)到服務(wù)器的方法。
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()
沒激活程序上下文之前就調(diào)用 current_app.name 會導致錯誤,但推送完上下文
之后就可以調(diào)用了。
注意,在程序?qū)嵗险{(diào)用 app.app_context() 可獲得一個程序上下文。也就是說,
有兩種方式來創(chuàng)建程序上下文:
1.第一種是隱式的:無論何時當一個請求上下文被壓棧時, 如果有必要的話一個程
序上下文會被一起創(chuàng)建。由于這個原因,你可以忽略程序上下文的存在,除非你需
要它。

第二種是顯式地調(diào)用 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.name
3、響應(yīng)

Flask 調(diào)用視圖函數(shù)后,會將其返回值作為響應(yīng)的內(nèi)容。

@app.route("/")
def index():
    return "

Bad Request

", 400

視圖函數(shù)返回值即為響應(yīng)

如果不想返回一個元組,F(xiàn)lask視圖函數(shù)還可以返回Response對象。make_response()
函數(shù)可接受一或多個參數(shù)(和視圖函數(shù)的返回值一樣),并返回一個 Response 對
象。有時我們需要在視圖函數(shù)中進行這種轉(zhuǎn)換,然后在響應(yīng)對象上調(diào)用各種方法,
進一步設(shè)置響應(yīng)。下例創(chuàng)建了一個響應(yīng)對象:

from flask import make_response
@app.route("/response/")
def response():
    resp = make_response("

Bad Request

",400) return resp

響應(yīng)的兩種方法:

視圖函數(shù)直接返回一個元組 (response, status, headers)

視圖函數(shù)返回一個make_resonse()函數(shù)產(chǎn)生的響應(yīng)對象

4、Cookies

cookies的操作:

通過請求對象的 cookies 屬性來訪問 Cookies。(請求對象的 cookies 屬性是一個
內(nèi)容為客戶端提交的所有 Cookies 的字典。)

通過響應(yīng)對象的set_cookie方法來設(shè)置 Cookies。

@app.route("/cookie/")
def cookie():
    resp = make_response("set cookie")
    resp.set_cookie("name","myname")
    return resp
5、請求鉤子

請求鉤子使用修飾器實現(xiàn)。 Flask 支持以下 4 種鉤子:

? before_first_request:注冊一個函數(shù),在處理第一個請求之前運行。
? before_request:注冊一個函數(shù),在每次請求之前運行。
? after_request:注冊一個函數(shù),如果沒有未處理的異常拋出,在每次請求之后運行。
? teardown_request:注冊一個函數(shù),即使有未處理的異常拋出,也在每次請求之后運行。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/40797.html

相關(guān)文章

  • 如何理解Nginx, WSGI, Flask之間的關(guān)系

    摘要:通過查閱了些資料,總算把它們的關(guān)系理清了。在這個過程中,服務(wù)器的作用是接收請求處理請求返回響應(yīng)服務(wù)器是一類特殊的服務(wù)器,其作用是主要是接收請求并返回響應(yīng)。正是為了替代而出現(xiàn)的。三結(jié)語最后以,,之間的對話結(jié)束本文。 剛轉(zhuǎn)行互聯(lián)網(wǎng)行業(yè),聽到了許多名詞:Flask、Django、WSGI、 Nginx、Apache等等,一直無法搞清楚這些開源項目之間的關(guān)系,直至看到這篇文章后感覺醍醐灌頂,以...

    魏明 評論0 收藏0

發(fā)表評論

0條評論

HackerShell

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<