Python3廖雪峰實戰項目:難點RequestHandler


最近一直在補別的知識點,個人博客實戰項目就耽誤了一段時間,不過,再次看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

  1. RequestHandler類:借助handler的特性,接收request,並處理request、url的參數標准化,返回一個標准的Web.Response對象,符合aiohttp的流程。

    • 獲取需要的參數列表
    • 把request攜帶的參數解析為需要的參數形式
    • 檢查解析的參數是否正確
    • 最后傳遞參數
  2. data_factory:集中處理request數據格(POST:’application/json’、’application/x-www-form-urlencoded’、’multipart/form-data’)

  3. response_factory:生成標准HTTP response的函數工廠,利用handler的性質,接收request,返回瀏覽器可識別的Response對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM