最快的 Python Web 框架入門

2021-08-21 15:06:18 字數 4766 閱讀 2611

速度比較

框架

實現基礎

每秒請求數

平均時間

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):

print

("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...