欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flask??response?對(duì)象詳情

 更新時(shí)間:2021年11月25日 12:50:22   作者:tigeriaf  
在?Flask?中,響應(yīng)使用?Response?對(duì)象表示,響應(yīng)報(bào)文中的大部分內(nèi)容由服務(wù)器處理,一般情況下,我們只負(fù)責(zé)返回主體內(nèi)容即可。在之前的文章中,我們了解到?Flask?會(huì)先匹配請(qǐng)求?url?的路由,調(diào)用對(duì)應(yīng)的視圖函數(shù),視圖函數(shù)的返回值構(gòu)成了響應(yīng)報(bào)文的主體內(nèi)容。

在 Flask 中,響應(yīng)使用 Response 對(duì)象表示,響應(yīng)報(bào)文中的大部分內(nèi)容由服務(wù)器處理,一般情況下,我們只負(fù)責(zé)返回主體內(nèi)容即可。在之前的文章中,我們了解到 Flask 會(huì)先匹配請(qǐng)求 url 的路由,調(diào)用對(duì)應(yīng)的視圖函數(shù),視圖函數(shù)的返回值構(gòu)成了響應(yīng)報(bào)文的主體內(nèi)容。

如果視圖函數(shù)只返回一個(gè)元素的話,Flask 會(huì)創(chuàng)建 Response 對(duì)象,Response將該返回值作為主體內(nèi)容,狀態(tài)碼默認(rèn)為200,MIME 的類(lèi)型為text/html,然后返回該 Response 對(duì)象。

其實(shí)視圖函數(shù)可以返回最多由個(gè)元素組成的元組:響應(yīng)主體、狀態(tài)碼、首部字段。我們也可以指定這三個(gè)元素的值。

@app.route('/hello1')

def hello1():

    return 'Hello 1'  

    # 等價(jià)于返回 Response('Hello 1', status=200, mimetype='text/html')

@app.route('/hello2')

def hello2():

    return 'Hello 2', 201, {'my-headers': 'tigeriaf'}

上面hello2()視圖函數(shù)返回一個(gè)元組,那么狀態(tài)碼 status 值會(huì)覆蓋默認(rèn)的200狀態(tài)碼,headers 可以是一個(gè)列表或者字典,作為額外的消息頭。

其實(shí)我們也可以先構(gòu)建 Response 響應(yīng)對(duì)象,設(shè)置一些參數(shù)(比如狀態(tài)碼,響應(yīng)頭等)后,然后直接返回Response 響應(yīng)對(duì)象。

@app.route('/hello3')

def hello3():

    response = make_response('hello 3', 202)

    response.headers["my-headers"] = "tigeriaf"

    return response

make_response()方法就是用來(lái)構(gòu)建response對(duì)象的,第二個(gè)參數(shù)表示響應(yīng)狀態(tài)碼,默認(rèn)是200。

之前的案例都是返回的純文本格式,但是在實(shí)際開(kāi)發(fā)中一般都是返回 json 格式,那該怎么做呢?

我們都知道 Python 標(biāo)準(zhǔn)庫(kù)中的json模塊為程序提供了 JSON 格式支持,F(xiàn)lask 也在json包的基礎(chǔ)上做了一些功能的封裝,我們可以直接導(dǎo)入 Flaskjson 包,將數(shù)據(jù)序列化為 json 類(lèi)型返回,再把Response 對(duì)象的 MIME 類(lèi)型修改為applcation/json即可。

@app.route('/hello4')

def hello4():

    data = {

        "status": 0,

        "message": "success",

        "data":

            {"name": "tigeriaf",

             "age": 24

             }

    }

    json_data = json.dumps(data)

    response = make_response(json_data)

    response.mimetype = "applcation/json"

    return response

除此之外,Flask 還提供了更方便的jsonify()方法,我們僅需要傳入數(shù)據(jù)或者參數(shù)等,它會(huì)對(duì)我們傳入的數(shù)據(jù)進(jìn)行序列化,轉(zhuǎn)換成 JSON 字符串作為響應(yīng)的主體,然后生成一個(gè)響應(yīng)對(duì)象,并且自動(dòng)設(shè)置 MIME 類(lèi)型,

如下:

@app.route('/hello4')

def hello4():

    data = {

        "status": 0,

        "message": "success",

        "data":

            {"name": "tigeriaf",

             "age": 24

             }

    }

    return jsonify(data)

可見(jiàn),jsonify()方法大大簡(jiǎn)化了我們的代碼,而且jsonify()方法接收多種形式的參數(shù),可以傳入普通參數(shù),也可以傳入關(guān)鍵字參數(shù),使用非常方便。

到此這篇關(guān)于 Flask? response 對(duì)象詳情的文章就介紹到這了,更多相關(guān) Flask? response 對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論