速度比較
框架
實現基礎
每秒請求數
平均時間
33.42ms安裝
環境:python3.5+
python -m pip install sanic
hello world
建立檔案main.py,寫入下面的內容
from
sanic
import
sanic
from
sanic.response
import
json
sanic
(__name__)
.route(
"/")
async
deftest(request):
return
json()
"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
.route(
"/json"
)def
post_json(request):
return
json()
.route(
"/form"
)def
post_json(request):
return
json()
.route(
"/files"
)def
post_json(request):
test_file = request.files.
get(
'test'
)file_parameters =
return
json()
.route(
"/query_string"
)def
query_string(request):
return
json()路由
和flask差不多,一看就懂
from
sanic
import
sanic
from
sanic.response
import
text
.route(
'/tag/'
)async
defperson_handler(request, tag):
return
text(
'tag - {}'
.format(tag))
.route(
'/number/'
)async
defperson_handler(request, integer_arg):
return
text(
'integer - {}'
.format(integer_arg))
.route(
'/number/'
)async
defperson_handler(request, number_arg):
return
text(
'number - {}'
.format(number))
.route(
'/person/'
)async
defperson_handler(request, name):
return
text(
'person - {}'
.format(name))
.route(
'/folder/'
)async
deffolder_handler(request, folder_id):
return
text(
'folder - {}'
.format(folder_id))
註冊中介軟體
sanic
(__name__)
.middleware
async
defhalt_request(request):
("i am a spy"
).middleware(
'request'
)async
defhalt_request(request):
return
text(
'i halted the request'
).middleware(
'response'
)async
defhalt_response(request, response):
return
text(
'i halted the response'
).route(
'/')
async
defhandler(request):
return
text(
'i would like to speak now please'
)"0.0.0.0"
, port=
8000
)異常處理
丟擲異常
from
sanic
import
sanic
from
sanic.exceptions
import
servererror
.route(
'/killme'
)def
i_am_ready_to_die(request):
raise
servererror()
處理異常
from
sanic
import
sanic
from
sanic.response
import
text
from
sanic.exceptions
import
notfound
.exception(
notfound
)def
ignore_404s(request, exception):
return
text(
"yep, i totally found the page: {}"
.format(request.url))藍圖
和flask中的藍圖一樣,用於組織專案結構
from
sanic.response
import
json
from
sanic
import
blueprint
bp =
blueprint
('my_blueprint'
)@bp
.route(
'/')
async
defbp_root():
return
json()
from
sanic
import
sanic
from
my_blueprint
import
bpsanic
(__name__)
'0.0.0.0'
, port=
8000
, debug=
true)總結
sanic將是乙個非常流行的框架.因為它基於python3.5+,使用了許多新的特性,這些特性讓程式速度更快。
常見的Python Web框架
常見python web框架 說到web framework,ruby的世界rails一統江湖,而python則是乙個百花齊放的世界,各種micro framework framework不可勝數,不完全列表見 雖然另一大指令碼語言php也有不少框架,但遠沒有python這麼誇張,也正是因為pyth...
python web開發框架
django python web應用開發框架 django 應該是最出名的python框架,gae甚至erlang都有框架受它影響。django是走大而全的方向,它最出名的是其全自動化的管理後台 只需要使用起orm,做簡單的物件定義,它就能自動生成資料庫結構 以及全功能的管理後台。diesel 基...
python web框架 推薦
flask 很輕,花很少的成本就能夠開發乙個簡單的 非常適合初學者學習。學會以後,可以考慮學習外掛程式的使用,用 sqlalchemy flask sqlalchemy 來對你的資料庫進行控制。django全能型框架 但是不建議初學者學習,因為要學習的東西太多了,一下子難以吸收會失去興趣。當然,dj...