国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Flask response響應的具體使用

Flask response響應的具體使用

2021-12-14 00:05憶想不到的暉 Python

在flask中,想要給前端頁面返回數據,必須是Response的對象,本文介紹了Flask response響應的使用,感興趣的可以了解一下

引言

客戶端發送 http 請求給 flask程序,flask 調用視圖函數后,會將其返回值作為響應的內容。大多情況下,響應就是一個簡單的字符串,作為 html 頁面回送客戶端。
但 http 協議需要的不僅是作為請求響應的字符串。http 響應中有一個很重要的部分是狀態碼,flask設為200,代表請求已被成功處理。

response響應

元組形式響應

如果視圖函數返回的響應還需要使用不同的狀態碼,那么可以把數字代碼作為第二個返回值,添加到響應文本之后

?
1
2
3
4
5
6
7
8
9
10
from flask import flask
 
app = flask(__name__)
 
 
# 以元組形式返回響應信息
@app.route("/index")
def index():
    #      響應體        狀態碼
    return "index page", 400

視圖函數返回的響應還可以接受第三個參數,響應頭也可以繼續放在后面返回,例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from flask import flask
 
app = flask(__name__)
 
 
# 以元組形式返回響應信息
@app.route("/index")
def index():
    header_dict = {
        "name": "jack",
        "age": 22
    }
 
    header_list = [("name", "hui"), ("age", 21)]
 
    #      響應體        狀態碼    響應頭
    return "index page", 400, header_dict
    # return "index page", 400, header_list

但響應頭信息要用一個字典或列表包裝起來,字典好理解,列表里面則是以元組形式存儲響應頭信息。這里返回的只是做個例子,真正返回的時候,要合理設置響應頭信息,例如

?
1
2
3
4
5
header_dict = {
    "content-type": " text/html; charset=utf-8",   # 響應返回的數據類型
    "set-cookie": "name=hui; path=/"        # 響應設置cookie
}
return "index page", 200, header_dict  

瀏覽器開發者工具查看響應信息

Flask response響應的具體使用

切記:以元組形式返回,返回值位置不能夠亂

第一個對應響應體
第二個對應狀態碼
第三個對應響應頭

make_response函數

如果不想返回由1個、2個或3個值組成的元組,flask視圖函數還可以返回 response 對象。make_response 函數可接受1個、2個或3個參數(和視圖函數的返回值一樣),并返回一個response對象。看看到底如何使用

?
1
2
3
4
5
6
7
8
9
10
11
12
from flask import flask, make_response
 
app = flask(__name__)
 
# mk_response 設置響應信息
@app.route("/info")
def info():
    resp = make_response("info page")
    resp.status = "666 ithui"
    resp.headers["name"] = "hui"
    resp.headers["age"] = 21
    return resp

注意:make_response() 對象設置狀態碼時必須字符串,不要寫成了數字

返回json格式數據

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import json
from flask import flask, make_response
 
app = flask(__name__)
 
 
@app.route("/json")
def resp_json():
    data = {
        "name": "hui",
        "age": 21
    }
 
    json_str = json.dumps(data)
    headers = {"content-type": "application/json"}
    return json_str, 200, headers

你可以借助 json 模塊進行數據 json化,但一般返回json數據要設置前端返回的數據類型,flask默認的是text/html,因此我們還需在單獨設置響應體內容類型。

由于json格式數據在web開發中使用頻繁,在 flask 中專門提供了 jsonify() 函數進行 json數據的響應

具體使用如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import flask, jsonify
 
app = flask(__name__)
 
 
@app.route("/json")
def resp_json():
    data = {
        "name": "hui",
        "age": 21
    }
    return jsonify(data)
    # return jsonify(name="jack", age=20)

jsonify()可以接收一個字典,也可以 key-value 形式來構造 json 數據。這樣就方便許多

其他特殊響應

redirect() 重定向

有一種名為重定向的特殊響應類型。這種響應類型沒有頁面文檔,只告訴瀏覽器一個新地址用以加載新頁面

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from flask import flask, redirect
 
app = flask(__name__)
 
# 自己設置重定向信息
@app.route('/baidu')
def red_baidu():
    resp = make_response()
    resp.status = "302"
    resp.headers['location'] = "http://www.baidu.com"
    return resp
 
 
# redirect 響應重定向
@app.route("/csdn")
def red_csdn():
    csdn_url = "https://blog.csdn.net/qq_43629857"
    return redirect(csdn_url)

重定向的經常使用 302 狀態碼表示,指向的地址由 location 首部提供。由于使用頻繁,flask 提供了輔助函數 redirect(),用于生成這種響應。

abort() 中斷

abort()接收一個狀態碼參數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from flask import flask, request, abort
 
app = flask(__name__)
 
# abort中斷
# http://127.0.0.1:5000/login?name=hui&pwd=123
@app.route("/login", methods=['get'])
def login():
    name = request.args.get("name")
    pwd = request.args.get("pwd")
    if name != "hui" or pwd != "123":
        abort(404)
 
    return "登錄成功"

一般這個 abort() 函數都會配合錯誤信息處理裝飾器 app.errorhandler() 一起使用,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 處理404狀態錯誤
@app.errorhandler(404)
def handle_404_err(err):
    return f"404 錯誤信息 {err}"
 
 
# 處理500狀態錯誤
@app.errorhandler(500)
def handle_500_err(err):
    return f"500 服務器錯誤 {err}"
 
 
# abort中斷
# http://127.0.0.1:5000/login?name=hui&pwd=123
@app.route("/login", methods=['get'])
def login():
    name = request.args.get("name")
    pwd = request.args.get("pwd")
    if name != "hui" or pwd != "123":
        abort(404)
 
    return "登錄成功"

源代碼

源代碼已上傳到 gitee huidbk/flaskbasic - 碼云 - 開源中國 (gitee.com) ,歡迎大家來訪。

到此這篇關于flask response響應的具體使用的文章就介紹到這了,更多相關flask response響應內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://juejin.cn/post/6982450925759627277

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色毛片 | 亚洲一区二区三 | 色花av| 亚洲欧美综合精品久久成人 | 欧美日韩精品电影 | 免费看黄色的视频 | 亚洲综合一区二区 | 一区二区av在线 | 九九国产| 日韩精品免费在线观看 | 国产精品成人在线 | 欧美大片在线观看 | 福利国产 | 国产一区二区三区久久久久久久久 | 日本激情综合网 | 国产成人综合一区二区三区 | 久久久久久久国产精品 | 国产探花在线精品一区二区 | 中文字幕一区二区三区在线视频 | 一区二区三区在线播放 | 色国产精品| 美日韩一区二区 | 亚洲三区在线观看 | 成人免费在线观看视频 | 色噜噜狠狠狠综合曰曰曰88av | 国产免费一级特黄录像 | 成人在线免费观看 | 日本久久久久久久久久久久 | 国产精品久久久久久久9999 | 精品国产一区二区在线 | 中文字幕综合在线 | jav久久亚洲欧美精品 | 亚洲国产日韩欧美 | 久久777 | 黄色国产一级片 | 日韩精品中文字幕在线观看 | 亚洲精品国产第一综合99久久 | 日韩欧美一级片 | 亚洲情网站 | 久久国 | 免费一二区 |