小編給大家分享一下Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
響應(yīng)
像現(xiàn)在大部分的互聯(lián)網(wǎng)應(yīng)用用的數(shù)據(jù)傳輸格式都是JSON,當(dāng)用戶(hù)訪(fǎng)問(wèn)一個(gè)URL,我們?nèi)绾瓮ㄟ^(guò)Flask返回JSON的響應(yīng):
普通做法:
@app.route("/") def showInfo(): return jsonify({"name":"老王","age":18})
當(dāng)我們的應(yīng)用有大量的URL時(shí),我們需要每次都用jsonify轉(zhuǎn)換一下,不免覺(jué)得繁瑣。此時(shí)會(huì)有人說(shuō),可以定義一個(gè)公共方法,將轉(zhuǎn)換都在這個(gè)方法中實(shí)現(xiàn)就好了。這也不失為一個(gè)可行的方法,還有一種方法讓Flask自動(dòng)幫我們做這些工作:
from flask import Response,jsonify class JSONResponse(Response): @classmethod def force_type(cls,response,environ=None): if isinstance(response,dict): response = jsonify(response) return super(JSONResponse,cls).force_type(response,environ) app.response_class = JSONResponse @app.route("/") def showInfo(): return {"name":"老王","age":18}
調(diào)度方法
flask.views.MethodView
對(duì)每個(gè)HTTP方法執(zhí)行不同的函數(shù)(映射到對(duì)應(yīng)方法的小寫(xiě)的同名方法上),這對(duì)RESTful API尤其有用。
from flask.views import MethodView class UserAPI(MethodView): def get(self): return jsonify({"method":"get"}) def post(self): return jsonify({"method":"post"}) app.add_url_rule("/user",view_func=UserAPI.as_view("userview"))
當(dāng)用戶(hù)使用GET或POST請(qǐng)求http://localhost:5000/user時(shí),會(huì)執(zhí)行UserAPI中相應(yīng)get,post函數(shù)。
藍(lán)圖
藍(lán)圖實(shí)現(xiàn)了應(yīng)用的模塊化,使用藍(lán)圖讓?xiě)?yīng)用層次清晰,開(kāi)發(fā)者可以更容易的開(kāi)發(fā)和維護(hù)項(xiàng)目。藍(lán)圖通常作用于相同的URL前綴。比如/user/item、/user/info這樣的地址,都以/user開(kāi)頭,那么他們就可以放在一個(gè)模塊中。看如下例子:
### xxx.py from flask import Blueprint user = Blueprint("user",__name__) @user.route("/info") def info(): return "User Info" #######分割線(xiàn)####### from xxx import user app.register_blueprint(user,url_prefix="/user")
當(dāng)用戶(hù)請(qǐng)求http://localhost:5000/user/info時(shí),就會(huì)返回”User Info”信息,效果與Django中的include類(lèi)似。
看完了這篇文章,相信你對(duì)“Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
新聞標(biāo)題:Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作的示例分析-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://www.yahangbao.cn/article20/digsjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄、品牌網(wǎng)站制作、企業(yè)建站、全網(wǎng)營(yíng)銷(xiāo)推廣、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容