1. Django rest framework 之序列化
https://www.cnblogs.com/midworld/p/11380194.html
2.寫API的三個重點
(1)路由;(2)視圖類(提供給用戶訪問相當于原來的視圖函式);(3)序列化類(提供給視圖類使用,把物件序列化成Json)
https://www.bilibili.com/video/BV1H4411W7iL?p=64&spm_id_from=pageDriver
3.序列化類
from rest_framework import serializers
注意:使用rest_framework,需先 settings.py的INSTALLED_APPS中先添加rest_framework,
# Application definition INSTALLED_APPS = ( ......... "rest_framework", ........ )
4.一個Model類至少對應一個序列化類,繼承于serializers.ModelSerializer,
序列化類的功能是把對應型別的物件轉換成Json,
- model 指明該序列化器處理的資料欄位從模型類參考生成
- fields 指明該序列化器包含模型類中的哪些欄位,fields = "__all__"指明包含所有欄位
5.視圖類
from rest_framework import viewsets
- queryset 指明該視圖集在查詢資料時使用的查詢集
- serializer_class 指明該視圖在進行序列化或反序列化時使用的序列化器
6.路由Routers
對于視圖集ViewSet,我們除了可以自己手動指明請求方式與動作action之間的對應關系外,還可以使用路由Routers來幫助我們快速實作路由資訊系結、呼叫
REST framework提供了兩個router類
- SimpleRouter
- DefaultRouter
創建router物件
from rest_framework import routers router = routers.DefaultRouter()
7.除錯/檔案 工具
7.1 安裝
pip install coreapi
7.2 添加路由
from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(title='站點頁面標題')) ]
8.django-admin
成功安裝Django后,虛擬機終端會有 django-admin命令,
執行 django-admin startproject 專案名 即可創建出對應專案檔案夾,
這個以專案命名的檔案內包含一個 manage.py檔案 和一個與專案名同名的檔案夾,
9.獲取當前程式的檔案名和路徑
import os
獲取當前程式的檔案名
os.path.abspath(__file__)
檔案夾的名字
os.path.dirname(os.path.abspath(__file__))
所在檔案夾的父目錄
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
以上代碼一般用戶獲取專案的絕對路徑
10.URL
定義:統一資源定位符 Uniform Resource Locator,
作用:用來表示互聯網上某個資源的地址,
URL的一般語法格式:
protocol://hostname[:port]/path[?query][#fragment]
注:[]代表其中的內容可省略,例如默認的埠80,就可以省略不寫,
(1)protocol:
* http 通過HTTP訪問該資源,格式為 http://
* https 通過安全的https訪問該資源,格式為https://
* file 資源是本地計算機上的檔案,格式為 file://
(2) hostname
是指存放資源的服務器的域名系統(DNS)主機名、域名或者IP地址,
(3)port
整數,可選,省略時使用默認埠,
各種協議的默認埠不同,如http的默認埠號為80.
(4)path 路由地址
有零或者多個“/” 符號隔開的字串,一般用來表示主機上的一個目錄或檔案地址,
路由地址決定了服務器端會如何處理這個請求,
(5)query(查詢)
可選,用于給靜態網頁傳遞引數,可有多個引數,用“&”符號隔開,每個引數的名和值用“=”符號隔開,
(6)fragment(資訊片段)
字串,用于指定網路資源中的片段,例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋,使用#來表示,
11.URL 請求處理程序
step 1 :Django 從組態檔中,根據ROOT_URLCONF找到 主路由檔案;默認情況下,該檔案在專案同名目錄下的urls檔案中,
step 2:Django 加載主路由檔案中的urlpatterns變數【包含很多路由的陣列】,
step 3:依次匹配urlpatterns中的path,匹配到第一個合適的中斷后續匹配,
step 4;匹配成功,呼叫對應的視圖函式處理請求,回傳相應;
匹配失敗,回傳404回應,
12.視圖函式
視圖函式是用于接收一個瀏覽器請求(HttpRequest物件)并通過HttpResponse物件回傳回應的函式,此函式可以接受瀏覽器請求并根據業務邏輯回傳相應的回應內容給瀏覽器,
語法為
def XXX_view(request[,其它引數...]) return HttpResponse物件
13.路由配置--path()函式
匯入
from django.urls inport path
語法
path(route,views,name=None)
引數
route:字串型別,匹配的請求路徑;
views:指定路徑所對應的視圖處理函式的名稱;
name:為地址起別名,在模板中地址反向決議時使用,
14.路由配置--path轉換器
語法:<轉換器型別:自定義名>
作用:若轉換器型別匹配到對應型別的資料,則將資料按照關鍵字傳參的方式傳遞給視圖函式,
例如:path('page/\<int:page>',views.xxx)
| 轉化器型別 | 作用 | 樣例 |
| str | 匹配除了’/‘之外的非空字串 | “v1/users/<str:username>”匹配/v1/users/guoxiaohua |
| int | 匹配0或者任何正整數,回傳一個int | "page/<int:page>"匹配/page/100 |
| slug | 匹配任意由ASCII字母或數字以及連字符和下劃線組成的短標簽 | "detail/<slug:sl>"匹配/detail/this-is-django |
| path | 匹配非空欄位,包括路徑分隔符’/‘ | "v1/users/<path:ph>"匹配/v1/users/a/b/c |
15.路由配置--re_path()
在url的匹配程序中可以使用正則運算式進行精確匹配,
語法:re_path(reg,view,name=xxxx)
正則運算式為命名分組模式(?p<name>pattern);匹配提取引數后用關鍵字傳參方式傳遞給視圖函式,
https://blog.csdn.net/qq_41475058/article/details/112214991
https://www.bilibili.com/video/BV1Q14y1t71j?p=2&spm_id_from=pageDriver
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502985.html
標籤:其他
上一篇:存盤器詳解
下一篇:OpenGL 亮度調節
