Python-Django-Djangorestframwork

1 CBV源碼分析(cbv和fbv)

1 在views中寫一個類,繼承View,裏面寫get方法,post方法
2 在路由中配置: url(r'^test/', views.Test.as_view()),實際上第二個參數位置,放的仍是一個函數內存地址
3 當請求來了,就會執行第二個參數(request,參數),本質上執行view()
4 view內部調用了dispatch()方法
5 dispatch分發方法,根據請求方式不一樣,執行的方法不一樣django

2 resful規範(10個規範)

-面向資源架構,面向資源編程
-10個規範
-與後臺作交互,一般使用https
-域名:
  -https://api.baidu.com(存在跨域問題)
  -https://www.baidu.com/api/
-版本
  -https://www.baidu.com/api/v1
  -https://www.baidu.com/api/v2
-路徑,視網絡上任何東西都是資源,均使用名詞表示(可複數)
  -https://api.example.com/v1/books
  不是:https://api.example.com/v1/delete_one_book
-method來表示增刪查改
  -https://api.example.com/v1/books get請求,獲取全部書
  -https://api.example.com/v1/books post請求,新增一本書
  -https://api.example.com/v1/book/1 delete請求,刪除一本書
  -https://api.example.com/v1/book/1 delete請求,獲取id爲1的這本書
  -https://api.example.com/v1/book/1 put/patch請求,修改id爲1的這本書

-過濾,經過在url上傳參的形式傳遞搜索條件
  -https://api.example.com/v1/books?limit=10:只拿前10本
  -https://api.example.com/v1/books?price=10:只拿價格爲10的書
-狀態碼
  -{status:100,}
-錯誤處理,應返回錯誤信息,error當作key
  {
  status:101,
  errors:'您沒有權限操做這個事'
  }
-返回結果,針對不一樣操做,服務器向用戶返回的結果應該符合如下規範
  GET /collection:返回資源對象的列表(數組)
  GET /collection/resource:返回單個資源對象
  POST /collection:返回新生成的資源對象
  PUT /collection/resource:返回完整的資源對象
  PATCH /collection/resource:返回完整的資源對象
  DELETE /collection/resource:返回一個空文檔
-返回結果中提供連接(獲取一本書)
  {
  id:1
  name:lxx
  price:12
  publish:www.xx.com/api/v1/publish/1
  }編程

3 django中寫resful的接口

-postman的使用
-請求地址帶反斜槓出現的問題(中間件)
  -若是請求地址是/user,路由中配置成'/user/',匹配不上,中間件會自動在後面加 / 再去匹配,能匹配成功,重定向到/user/,加了 / 還匹配不上,就報錯
  -django.middleware.common.CommonMiddlewarejson

4 drf寫resful的接口

5 APIVIew源碼分析

對象沒有,找父類的dispatchapi

6 Request

 碼分析跨域

 

7 drf之序列化

 

8 在線格式化json -https://www.json.cn/

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息