国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于python3.5+的web框架sanic中文入門教程

booster / 1727人閱讀

摘要:簡介是一款用寫的,用法和類似,的特點是非常快官網速度比較框架實現基礎每秒請求數平均時間安裝環境創建文件,寫入下面的內容運行是不是看起來和一樣屬性上傳文件列表數據數據表單數據例子路由和差不多,一看就懂注冊中間件異常處

簡介

sanic是一款用python3.5+寫的web framework,用法和flask類似,sanic的特點是非常快
github官網:https://github.com/channelcat...

速度比較
框架 實現基礎 每秒請求數 平均時間
Sanic Python 3.5 + uvloop 30,601 3.23ms
Wheezy gunicorn + meinheld 20,244 4.94ms
Falcon gunicorn + meinheld 18,972 5.27ms
Bottle gunicorn + meinheld 13,596 7.36ms
Flask gunicorn + meinheld 4,988 20.08ms
Kyoukai Python 3.5 + uvloop 3,889 27.44ms
Aiohttp Python 3.5 + uvloop 2,979 33.42ms
安裝

環境:python3.5+
python -m pip install sanic

Hello World

創建文件main.py,寫入下面的內容

from sanic import Sanic
from sanic.response import json

app = Sanic(__name__)

@app.route("/")
async def test(request):
    return json({ "hello": "world" })

app.run(host="0.0.0.0", port=8000)

運行python3 main.py
sanic是不是看起來和flask一樣

 Request

屬性
request.files (dictionary of File objects) - 上傳文件列表
request.json (any) - json數據
request.args (dict) - get數據
request.form (dict) - post表單數據

例子

from sanic import Sanic
from sanic.response import json

@app.route("/json")
def post_json(request):
    return json({ "received": True, "message": request.json })

@app.route("/form")
def post_json(request):
    return json({ "received": True, "form_data": request.form, "test": request.form.get("test") })

@app.route("/files")
def post_json(request):
    test_file = request.files.get("test")

    file_parameters = {
        "body": test_file.body,
        "name": test_file.name,
        "type": test_file.type,
    }

    return json({ "received": True, "file_names": request.files.keys(), "test_file_parameters": file_parameters })

@app.route("/query_string")
def query_string(request):
    return json({ "parsed": True, "args": request.args, "url": request.url, "query_string": request.query_string })
 路由

和flask差不多,一看就懂

from sanic import Sanic
from sanic.response import text

@app.route("/tag/")
async def person_handler(request, tag):
    return text("Tag - {}".format(tag))

@app.route("/number/")
async def person_handler(request, integer_arg):
    return text("Integer - {}".format(integer_arg))

@app.route("/number/")
async def person_handler(request, number_arg):
    return text("Number - {}".format(number))

@app.route("/person/")
async def person_handler(request, name):
    return text("Person - {}".format(name))

@app.route("/folder/")
async def folder_handler(request, folder_id):
    return text("Folder - {}".format(folder_id))
注冊中間件
app = Sanic(__name__)

@app.middleware
async def halt_request(request):
    print("I am a spy")

@app.middleware("request")
async def halt_request(request):
    return text("I halted the request")

@app.middleware("response")
async def halt_response(request, response):
    return text("I halted the response")

@app.route("/")
async def handler(request):
    return text("I would like to speak now please")

app.run(host="0.0.0.0", port=8000)
異常處理

拋出異常

from sanic import Sanic
from sanic.exceptions import ServerError

@app.route("/killme")
def i_am_ready_to_die(request):
    raise ServerError("Something bad happened")

處理異常

from sanic import Sanic
from sanic.response import text
from sanic.exceptions import NotFound
@app.exception(NotFound)
def ignore_404s(request, exception):
    return text("Yep, I totally found the page: {}".format(request.url))
藍圖

和flask中的藍圖一樣,用于組織項目結構
創建一個藍圖,相當于創建一個sanic app,上面的用法和上面相同,把app改成藍圖名稱bp

from sanic.response import json
from sanic import Blueprint

bp = Blueprint("my_blueprint")

@bp.route("/")
async def bp_root():
    return json({"my": "blueprint"})

藍圖注冊到主app

from sanic import Sanic
from my_blueprint import bp

app = Sanic(__name__)
app.register_blueprint(bp)

app.run(host="0.0.0.0", port=8000, debug=True)
總結

sanic將是一個非常流行的框架.因為它基于python3.5+,使用了許多新的特性,這些特性讓程序速度更快.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38221.html

相關文章

  • 微信公號DIY:一小時搭建微信聊天機器人

    摘要:最近借用了女朋友的公號,感覺如果只是用來發文章,太浪費微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機器人吧。是一款接口的,基于一系列規則和機器學習算法完成的聊天機器人。 最近借用了女朋友的公號,感覺如果只是用來發文章,太浪費微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機器人吧。 使用Python實現聊天機器人的方案有多種:AIML、chatterBot以...

    source 評論0 收藏0
  • python 最快 web 框架 Sanci 快速入門

    摘要:詳細信息可以看下這個問題先在說下我的部署方式使用部署配置文件啟動方式總結試用了下,把之前的一個聊天機器人從改成了。預告下一篇將介紹如何使用一步一步創建一個聊天機器人。 簡介 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請求的方式處理請求。這意味著你可以使用新的 async/await ...

    snifes 評論0 收藏0
  • Sanic教程:快速開始

    摘要:快速開始在安裝之前在支持異步的過程中,都經歷了哪些比較重大的更新。踏出第一步我們將正式使用來構建一個項目,讓我們踏出第一步,利用來編寫一個返回字符串的服務程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標...

    warmcheng 評論0 收藏0
  • sanic異步框架中文文檔

    摘要:實例實例測試結果增加路由實例測試結果提供了一個方法,根據處理程序方法名生成。異常拋出異常要拋出異常,只需從異常模塊中提出相應的異常。 typora-copy-images-to: ipic [TOC] 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支...

    elliott_hu 評論0 收藏0
  • Python web 框架Sanic 學習: 自定義 Exception

    摘要:是一個和類的基于的框架,它使用了異步特性,有遠超的性能。那我們能不能自定義異常處理方法呢答案當然是可以。提供了的響應對象。以下自定義的異常處理類無效的使用捕獲異常,返回自定義響應數據參考鏈接最后,感謝女朋友支持。 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它使用了 Python3 異步特性,有遠超 flask 的性能。 編寫 RESTful API 的時...

    2i18ns 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<