最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作實(shí)例分析

 更新時(shí)間:2018年07月24日 09:09:25   作者:噴跑的豆子  
這篇文章主要介紹了Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作,結(jié)合實(shí)例形式分析了Flask框架中響應(yīng)、調(diào)度方法和藍(lán)圖相關(guān)功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Flask框架響應(yīng)、調(diào)度方法和藍(lán)圖操作。分享給大家供大家參考,具體如下:

響應(yīng)

像現(xiàn)在大部分的互聯(lián)網(wǎng)應(yīng)用用的數(shù)據(jù)傳輸格式都是JSON,當(dāng)用戶訪問一個(gè)URL,我們?nèi)绾瓮ㄟ^Flask返回JSON的響應(yīng):

普通做法:

@app.route("/")
def showInfo():
  return jsonify({"name":"老王","age":18})

當(dāng)我們的應(yīng)用有大量的URL時(shí),我們需要每次都用jsonify轉(zhuǎn)換一下,不免覺得繁瑣。此時(shí)會(huì)有人說,可以定義一個(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)方法的小寫的同名方法上),這對(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)用戶使用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)圖讓應(yīng)用層次清晰,開發(fā)者可以更容易的開發(fā)和維護(hù)項(xiàng)目。藍(lán)圖通常作用于相同的URL前綴。比如/user/item/user/info這樣的地址,都以/user開頭,那么他們就可以放在一個(gè)模塊中??慈缦吕?

### xxx.py
from flask import Blueprint
user = Blueprint("user",__name__)
@user.route("/info")
def info():
  return "User Info"
#######分割線#######
from xxx import user
app.register_blueprint(user,url_prefix="/user")

當(dāng)用戶請(qǐng)求http://localhost:5000/user/info時(shí),就會(huì)返回”User Info”信息,效果與Django中的include類似。

希望本文所述對(duì)大家基于Flask框架的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

吉安县| 绍兴市| 家居| 昌吉市| 阿鲁科尔沁旗| 廉江市| 温泉县| 西宁市| 平顺县| 同仁县| 洪江市| 凯里市| 安仁县| 涟源市| 双辽市| 隆德县| 绥德县| 昭通市| 比如县| 凭祥市| 英山县| 南丰县| 宜兴市| 长治县| 曲阜市| 黄山市| 南木林县| 甘南县| 景谷| 北京市| 昌都县| 潞城市| 浦城县| 临城县| 河池市| 阜宁县| 古蔺县| 遂昌县| 岚皋县| 万全县| 黑河市|