本文實例講述了Sanic框架請求與響應。分享給大家供大家參考,具體如下:
前面介紹了Sanic框架的路由,這里接著介紹Sanic框架的請求與響應。
簡介
Sanic是一個類似Flask的Python 3.5+ Web服務器,它的寫入速度非常快。除了Flask之外,Sanic還支持異步請求處理程序。這意味著你可以使用Python 3.5中新的閃亮的異步/等待語法,使你的代碼非阻塞和快速。
前言:Sanic最低支持Python 3.5,如果需要學習Sanic,請先下載版本不低于3.5的Python包
請求數據
當一個端點收到一個HTTP請求時,路由功能被傳遞到一個request對象。以下變量可以作為request對象的屬性訪問:
json:JSON數據@app.route("/post_data",methods=["POST"])async def post_data(request): # 將打印傳遞過來的JSON數據 print(request.json) return text("it is ok!")args:查詢字符串變量。查詢字符串是類似于URL的部分
?name=laozhang&age=20
。如果URL被解析,那么args字典將如下所示:{"name":["laozhang"],"age":[20]}
raw_args:在許多情況下,我們需要獲取壓縮程度低的字典中的url參數。對于之前的URL?name=laozhang&age=20
,raw_args
字典將如下所示:{"name":"laozhang","age":20}
file:文件對象字典,具有名稱,正文和類型的文件列表@app.route("/post_file_data",methods=["POST"])async def post_file_data(request): info = request.files.get("file") print(info.name) print(info.type) print(info.body) return text("it is ok!")form:表單數據,form字典將如下所示:
{"name":["laozhang"]}
@app.route("/post_form_data",methods=["POST"])async def post_form_data(request): name = request.form.get("name") return text("it is ok!")body:原始數據。無論內容類型如何,該屬性都允許檢索請求的原始數據。
byte
類型 headers:獲取請求表頭的不區分大小寫的字典。dict
類型 ip:IP地址,str
類型 port:端口,str
類型 socket:請求者的IP地址和端口,(IP地址,端口)。tuple
類型 app:對處理請求的Sanic應用程序對象的引用。@appr.route("/get_app_info")async def get_app_info(request): print(request.app.config) return text("it is ok!")url:請求的完整URL,如:http://localhost:5000/get_app_info scheme:獲取與請求關聯的URL方案:
http
或https
host:獲取與請求關聯的主機 path:獲取請求的路徑,如:/get_app_info
query_string:獲取查詢的字符串,如:name=zhangsan
或者為一個空白字符串 uri_template:獲取匹配路由處理程序的模板,如:/get/<id>
token:授權標頭的值
新聞熱點
疑難解答