日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

flask返回json数据到前端_小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值...

發(fā)布時(shí)間:2024/9/3 HTML 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask返回json数据到前端_小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
點(diǎn)擊藍(lán)色字關(guān)注我們!

一個(gè)正在努力變強(qiáng)的公眾號(hào)

本文內(nèi)容:

? ? 1. abort函數(shù)的使用

? ? 2. 自定義錯(cuò)誤處理方法

? ? 3. 設(shè)置響應(yīng)信息的方法

? ? 4.?返回json數(shù)據(jù)的方法

abort函數(shù)的使用

? ? ? abort函數(shù)是我們又新接觸的一個(gè)函數(shù),具體有什么作用?簡(jiǎn)單點(diǎn)說它可以終止視圖函數(shù)的執(zhí)行并且還可以返回給前端特定的信息。

下面我將舉兩個(gè)特定的例子

首先第一種:傳遞狀態(tài)碼信息(必須是http標(biāo)準(zhǔn)狀態(tài)碼)

# -*- coding: utf-8 -*-from flask import Flask, abortapp = Flask(__name__)@app.route("/login")def login(): # 1. 傳遞狀態(tài)碼信息(必須是http標(biāo)準(zhǔn)狀態(tài)碼) name = "" pwd = ""????#?如果name不等于123?pwd不等于1234?,我們就返回404狀態(tài)碼 if name != "123" and pwd != "1234":????????abort(404)????return?"login?success"if?__name__?==?'__main__': app.run(debug=True)

我們運(yùn)行一下:

可以看到返回為404的結(jié)果頁面

除了返回狀態(tài)碼外,abort函數(shù)還能傳遞響應(yīng)體信息:

# -*- coding: utf-8 -*-from flask import Flask, abort, Responseapp = Flask(__name__)@app.route("/login")def login(): # 2. 傳遞響應(yīng)體信息 name = ""????pwd?=?"" if name != "123" and pwd != "1234": resp = Response("login failed") abort(resp) return "login success"if __name__ == '__main__': app.run(debug=True)

我運(yùn)行之后看結(jié)果:

返回了我們想要的結(jié)果。其實(shí)這里我們可以直接使用return來返回結(jié)果,不需要通過Response對(duì)象來返回,所以這種返回方式我們并不經(jīng)常使用。

自定義錯(cuò)誤處理方法

我們上面通過abort返回的狀態(tài)碼404,所返回的頁面都是固定的404頁面,有時(shí)我們需要去自己定義返回的頁面信息,我們?cè)撊绾稳プ?#xff1f;

# -*- coding: utf-8 -*-from flask import Flask, abort, Responseapp?=?Flask(__name__)@app.errorhandler(404)def handle_404_error(err): '''自定義的處理錯(cuò)誤方法''' # 這個(gè)返回值會(huì)是用戶在前端中所看到的結(jié)果 return u"很抱歉,出現(xiàn)了404錯(cuò)誤 錯(cuò)誤信息: %s" % errif __name__ == '__main__': app.run(debug=True)

大家可以看到上面的handle_404_error函數(shù),我們首先通過修飾器app.errorhandler(404)綁定了404的狀態(tài)碼,之后我們可以在這個(gè)函數(shù)中定義自己想要返回的頁面信息。

運(yùn)行結(jié)果:

設(shè)置響應(yīng)信息的方法

設(shè)置響應(yīng)信息的方法有兩種,我們先來講講第一種,通過元組的形式,返回自定義的響應(yīng)信息。

@app.route("/index")def index(): # 1. 通過元組來自定義返回響應(yīng)信息 return ("index page", 400, [("itcast","python"), ("City", "hn")])

大家可以看到我們成功的返回了我們自定義的響應(yīng)信息,當(dāng)然除了這種方式,我們還可以將響應(yīng)頭以字典的形式來返回:

@app.route("/index")def index():????#?1.?通過元組來自定義返回響應(yīng)信息????return?("index?page",?400,?{"itcast":"python","City":"hn"})

其返回結(jié)果與上圖一致。

除了一些規(guī)定的狀態(tài)碼,我們也可以返回自定義的狀態(tài)碼:

@app.route("/index")def index(): # 1. 通過元組來自定義返回響應(yīng)信息 # return ("index page", 400, [("itcast","python"), ("City", "hn")]) return ("index page", 666, {"itcast":"python","City":"hn"})

除了上面的方法去設(shè)置響應(yīng)信息,我們還可以通過make_response函數(shù)來進(jìn)行返回:

# -*- coding: utf-8 -*-from flask import Flask, make_responseapp?=?Flask(__name__)@app.route("/index")def index(): resp = make_response("index page") resp.status = "666" resp.headers["city"] = "hn" return respif __name__ == '__main__': app.run(debug=True)

其效果與通過元組設(shè)置相同

返回json數(shù)據(jù)的方法

在Flask中,我們?nèi)绾畏祷豭son數(shù)據(jù)呢?在Flask中給我們提供了一個(gè)函數(shù)-jsonify,如何使用?

# -*- coding: utf-8 -*-from flask import Flask, jsonifyimport jsonapp?=?Flask(__name__)@app.route("/index")def?index(): data = { "name":"javaandpython", "age":20????} return jsonify(data)if __name__ == '__main__': app.run(debug=True)

jsonify不僅可以幫我們把字典轉(zhuǎn)為json格式,還能幫我們把響應(yīng)頭中的Content-Type設(shè)置為application/json。

我們除了把字典形式放入jsonify當(dāng)中,還可以直接把數(shù)據(jù)傳到j(luò)sonify函數(shù)當(dāng)中:

@app.route("/index")def?index(): return jsonify(name="javaandpython", age=20)

這樣是相同的效果


Flask系列文章:

小白學(xué)Flask第一天 | 我的第一個(gè)Flask程序

小白學(xué)Flask第二天| app對(duì)象的初始化和配置

小白學(xué)Flask第三天| 今天把視圖函數(shù)的路由給講清楚!

小白學(xué)Flask第四天| 把路由轉(zhuǎn)換器玩的更牛逼

小白學(xué)Flask第五天 | 詳解很重要的request對(duì)象

持續(xù)更新中...

總結(jié)

以上是生活随笔為你收集整理的flask返回json数据到前端_小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。