複習第一天
1. 你理解的Http協議?
- 建立在tcp之上
- 一次請求一次響應然後斷開連線(無狀態、短連線)
- 請求和響應
傳送:請求頭\r\n\r\n請求體
host:www.luffy.com\r\ncontent-type:application/json\r\n\r\n請求體
響應:響應頭\r\n\r\n響應體
2. django請求生命週期
-瀏覽器傳送請求到後端---->後端{wsgi---->中介軟體---->路由---->檢視---->(模型,資料庫)---->將資料經過中介軟體返回wsgi}---->經過封裝返回給瀏覽器
3. wsgi
-web服務閘道器介面,是一套協議,而實現協議的模組是wsgiref--->接收請求封裝成物件交給web服務框架
4. django中介軟體是什麼?
-在檢視函式執行前頂自己一些操作,
5. 使用中介軟體做過什麼?
- 內建
- csrf
- session
- 自定義
- 登入認證
- 許可權
- cors
6. 中介軟體中有多少個方法?
5個
7. FBV和CBV是什麼?以及優缺點。
-FBV:在視圖裡通過函式處理請求;優點:靈活
-CBV:在視圖裡通過類處理請求;優點:簡潔,通過反射的方法根據method不同做不同的操作,提高了程式碼的複用性.
8. rest api
- 1.建議使用HTTPS,2.標識版本,3.標識是api,4.面向資源程式設計,5.條件,6.根據method不同進行不同操作,7.返回值,8.返回錯誤資訊,9.返回url,10.響應式返回狀態碼
9. django rest framework框架
-1.路由,2.檢視,3.版本,4.許可權,5.認證,6.頻率控制,7.解析器,8.序列化,9.分頁,10.渲染器
10. 檢視常見的繼承
from rest_framework.views import APIView # *
from rest_framework.generics import GenericAPIView
from rest_framework.viewsets import GenericViewSet # as_view
from rest_framework.viewsets import ModelViewSet # *
11. 如何實現的訪問頻率控制?
匿名使用者:無法控制,因為使用者可以換代理IP
{
192.168.1.1:[1521223123.232, 1521223122.232, 1521223121.232],
192.168.1.2:[1521223123.232, 1521223122.232, 1521223121.232],
192.168.1.3:[1521223123.232, 1521223122.232, 1521223121.232],
192.168.1.4:[1521223123.232, 1521223122.232, 1521223121.232],
192.168.1.5:[1521223123.232, 1521223122.232, 1521223121.232],
192.168.1.6:[1521223123.232, 1521223122.232, 1521223121.232],
}
登入使用者:如果有很多賬號,也無法限制
{
alex:[1521223123.232, 1521223122.232, 1521223121.232],
eric:[1521223123.232, 1521223122.232, 1521223121.232],
}
參考原始碼:from rest_framework.throttling import SimpleRateThrottle
12. 序列化
自定義欄位:- source - method