1 在views中寫一個類,繼承View,裏面寫get方法,post方法
2 在路由中配置: url(r'^test/', views.Test.as_view()),實際上第二個參數位置,放的仍是一個函數內存地址
3 當請求來了,就會執行第二個參數(request,參數),本質上執行view()
4 view內部調用了dispatch()方法
5 dispatch分發方法,根據請求方式不一樣,執行的方法不一樣django
-面向資源架構,面向資源編程
-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
}編程
-postman的使用
-請求地址帶反斜槓出現的問題(中間件)
-若是請求地址是/user,路由中配置成'/user/',匹配不上,中間件會自動在後面加 / 再去匹配,能匹配成功,重定向到/user/,加了 / 還匹配不上,就報錯
-django.middleware.common.CommonMiddlewarejson
對象沒有,找父類的dispatchapi
碼分析跨域