国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Sanic框架藍圖用法實例分析

2020-02-15 22:16:14
字體:
來源:轉載
供稿:網友

本文實例講述了Sanic框架藍圖用法。分享給大家供大家參考,具體如下:

藍圖是可以用于應用程序內子路由的對象。藍圖并未向應用程序內添加路由,而是定義了用于添加路由的類似方法,然后以靈活且可插入的方式向應用程序注冊路由。

藍圖對于大型應用程序尤其有用,您的應用程序可以分解成為幾個小組或責任區域。

第一個藍圖

假設你在bp/bp_1.py文件下,定義了以下這么一個非常簡單的藍圖:

from sanic import Blueprintfrom sanic.response import textbp = Blueprint("first_bp")@bp.route("/get_info")async def get_info(request):  return text("it is ok!")

注冊藍圖

定義了一個藍圖之后,必須在應用程序中注冊:

from sanic import Sanicfrom bp.bp_1 import bpapp = Sanic()app.blueprint(bp)if __name__ == "__main__":  app.run()

如此,并將藍圖添加到應用程序當中,并注冊藍圖所定義的所有路由。此時我們就可以訪問/get_info就可以獲取到數據了

藍圖的使用

在前面一篇《Sanic框架異常處理與中間件操作》中簡單介紹了一下在路由中如何使用中間件與異常以及監聽器等,這些東西在藍圖中同樣可以使用:

中間件:使用藍圖可以在全局范圍內注冊中間件

@bp.route("/get_info")async def get_info(request):  return text("get_info")@bp.middleware("request")async def handle_md_request(request):  print("request middleware")@bp.middleware("response")async def handle_md_response(request,response):  print("response middleware")

異常:使用藍圖可以在全局范圍內注冊異常

from sanic.exceptions import NotFound@bp.exception(NotFound)async def handle_exception(request,exception):  return text("404 exception")

靜態文件:靜態文件可以在藍圖前綴下全局提供

bp.static("/home","/aaa/bbb/abc.html")

監聽器:如果需要在服務器啟動/關閉的時候,執行一些特殊的代碼,則可以使用以下監聽器,可用的監聽器如下:

before_server_start:在服務器開始接收連接之前執行 after_server_start:在服務器開始接收連接之后執行 before_server_stop:在服務器停止接收連接之前執行 after_server_stop:在服務器停止接收連接之后執行
@bp.listener("before_server_start")async def before_server_start(request,loop):  print("before server start")@bp.listener("after_server_start")async def after_server_start(request,loop):  print("after server start")@bp.listener("before_server_stop")async def before_server_stop(request,loop):  print("before server stop")@bp.listener("after_server_stop")async def after_server_stop(request,loop):  print("after server stop")

當服務器啟動時,將會依次打印如下信息:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠安县| 喀喇| 辽阳市| 闸北区| 行唐县| 缙云县| 黄山市| 黑河市| 灵川县| 瓦房店市| 潮州市| 灵武市| 西丰县| 怀仁县| 徐水县| 突泉县| 宁波市| 黑河市| 溆浦县| 广汉市| 东兴市| 柳江县| 双流县| 和林格尔县| 邻水| 霍林郭勒市| 原平市| 龙川县| 广灵县| 灯塔市| 万荣县| 杭锦旗| 高碑店市| 平和县| 玛沁县| 荥阳市| 嘉义市| 伊春市| 新宁县| 青海省| 连江县|