最近一直在補別的知識點,個人博客實戰項目就耽誤了一段時間,不過,再次看day5清晰了一些;但是對新手上路的我,還是一臉懵逼(黑人問號臉?),所以這里稍微記錄下自己的理解(本課內容還沒有吃透,后面還要回過來研究,暫時先告一段落)。
day5 的重點是自己動手擼一個Web框架,我特地去瀏覽了一遍asyncio的api,再加上網上各位大大的解疑博客,小白大概理清了本課的以下幾個重難點:
首先Web框架需要處理啥?
簡單說,就是通過request實現前台視圖view和后台的交互,即后台發送request給前台,前台解析並顯示;前台發送request給后台,中間要經過解析轉換成后台可以處理的事務。Web框架就是對這些request進行標准化處理。
其次,核心函數及類有哪些?
day5主要完成三個py文件:coroweb.py、app.py、handlers.py
coroweb.py下核心類:RequestHandler
app.py下核心函數:data_factory、response_factory
-
RequestHandler類:借助handler的特性,接收request,並處理request、url的參數標准化,返回一個標准的Web.Response對象,符合aiohttp的流程。
- 獲取需要的參數列表
- 把request攜帶的參數解析為需要的參數形式
- 檢查解析的參數是否正確
- 最后傳遞參數
-
data_factory:集中處理request數據格(POST:’application/json’、’application/x-www-form-urlencoded’、’multipart/form-data’)
-
response_factory:生成標准HTTP response的函數工廠,利用handler的性質,接收request,返回瀏覽器可識別的Response對象
