WSGI學習筆記

weixin_33724059發表於2017-04-24
  1. 首先實現一個web server
    http_server.py
  2. 接下來要實現WSGI server了
    • application:WSGI協議規定application只能這樣:
      application.py

def simple_app(environ, start_response):# 一個可呼叫物件,定義了call的類也可以。取名隨意。
'''
@param environ:dict,包含了很多http相關的環境變數
@param start_response:一個函式,第一個引數是狀態,第二個引數是http header的一部分
@return: 一個可迭代物件
'''
pass
```
* middleware: 中介軟體的作用就是在server 拿到請求資料給 application 前如果想做一些處理或者驗證等等功能,這時候 middleware 就派上用場了,當然你願意的話也可以寫在你的 server 裡,只是 wsgi 規範更建議把這些寫在中介軟體裡,下面我來實現一個檢查請求'User-Agent'是否為正常瀏覽器,不是就把請求拒絕掉的中介軟體:
middleware.py

* server:

wsgi_server.py