DRF框架中的英文單詞
1.prefix /'prif?ks/
前綴,我們在路由配置的時候經(jīng)持P耍看見這個單詞犀斋。在flask中,我們可以在設(shè)置url的時候為了區(qū)別視圖情连,在類似功能的url全部加一個前綴叽粹。
2.version /'v??n/
版本,這個在計算機上面很常見却舀,在DRF框架中的RESTful設(shè)計風(fēng)格中有一種規(guī)范虫几,就是將api的版本號放入url中,如下:(1.0即版本號)
http://www.example.com/api/1.0/foo
3.endpoint /'?nd,p??nt/
終點挽拔,我們在RESTful設(shè)計風(fēng)格中也稱為路徑辆脸,表示API的具體網(wǎng)址。這里就簡單的回顧一下之前的內(nèi)容:資源作為網(wǎng)址螃诅,只能有名詞啡氢,不能有動詞,而且往往與數(shù)據(jù)庫中的表名相對應(yīng)术裸;還有就是名詞用復(fù)數(shù)倘是。淡然這只是設(shè)計風(fēng)格,如果你幾百個接口有那么幾個用了動詞也是符合Restful設(shè)計風(fēng)格的袭艺。
4.filter/'f?lt?/
過濾搀崭,我們在DRF框架的高級功能中,就有過濾這一項猾编×龆茫可以在url地址中傳參數(shù),我們進行過濾答倡。
5.Status Codes
狀態(tài)碼轰传,當然我們在用的時候都是直接使用了status狀態(tài)這個單詞用來表示狀態(tài)碼了。這里有一個注意點就是我們在項目中狀態(tài)碼盡量不要直接寫數(shù)字瘪撇,而是用常量获茬,這樣別人看到也好理解。
6.Error handling
錯誤處理设江,在Restful設(shè)計風(fēng)格中,如果狀態(tài)碼是4xx攘轩,我們就應(yīng)該返回錯誤的信息叉存,通常來說是下面這個樣子,但是不唯一:
{error:"<error message>"}
7.PATCH
這個操作在現(xiàn)在基本上是不用的度帮,但是我們了解一下歼捏,path只是將更改的內(nèi)容發(fā)送稿存,put將更改后所有的內(nèi)容都發(fā)送過去。這個在網(wǎng)上說法不一瞳秽,先按這種理解瓣履,畢竟沒人用這種操作方式了,而是用put练俐。
8.Hypermedia API
超媒體袖迎,這個也是理解即可,RESTful API最好做到Hypermedia(即返回結(jié)果中提供鏈接腺晾,連向其他API方法)燕锥,使得用戶不查文檔,也知道下一步應(yīng)該做什么悯蝉。
{
"current_user_url": "https://api.github.com/user",
"authorizations_url": "https://api.github.com/authorizations",
// ...
}
9.gender /'d??nd?/
性別归形,我們在表的字段中經(jīng)常看見這一單詞鼻由。以后大家千萬不要再用sex表示性別了暇榴,它表示性更多一點,哈哈哈蕉世。
10.title/'ta?tl/
標題蔼紧,我們在設(shè)計模型類的時候用到了這一單詞,很簡單讨彼,大家過一下即可歉井。
11.publication/,p?bl?'ke??n/
出版,我們在pub_date出版日期時候見過他的縮寫哈误。
12.comment/'kɑm?nt/
評論哩至,比如書的評論信息。還有read讀這個單詞蜜自,我們就不單獨說了菩貌,大家都知道。
13.image/'?m?d?/
影像重荠,肖像箭阶,我們常用來表示圖片。
14.Meta/'m?t?/
n.人名戈鲁,名詞有人名的意思仇参。我一直以為是什么單詞的縮寫,但是沒有想到竟然有這個單詞婆殿,前端中也表示標簽的優(yōu)化诈乒、原標簽。后端我們在設(shè)計模型類時自定義表名的時候用到了婆芦。
15.verbose /v?'bos/
冗長的怕磨;啰嗦的喂饥,我們使用verbose_name指明一個易于理解和表述的對象名稱。
class Meta:
db_table = 'tb_books' # 指明數(shù)據(jù)庫表名
verbose_name = '圖書' # 在admin站點中顯示的名稱
verbose_name_plural = verbose_name # 顯示的復(fù)數(shù)名稱
16.plural/'pl?r?l/
復(fù)數(shù)肠鲫,上面的這個單詞是復(fù)數(shù)的意思员帮。
17.detail /d??tel/
詳細,我們在展示詳情的時候导饲,視圖名稱通常會用到這個單詞捞高。
18.urlpatterns
這其實不是一個單詞,我們只是將url和patterns(模式)組合了一下帜消。我們用來表示路由的url的路由列表棠枉。但是pattern在計算機中通常用來表示模式。
19.Serialization/?s??r?rla?'ze??n/
序列化泡挺,這個單詞全球只有美式音標辈讶,統(tǒng)一的。應(yīng)該是美國人發(fā)明的吧娄猫,畢竟美國的計算機發(fā)展的相當棒贱除。序列化這個定義很很重要,給大家強調(diào)一下:在Django中媳溺,我們可以簡單的理解為將模型類對象轉(zhuǎn)化成字典或字符串的這個過程月幌。反過來就是反序列化,但是沒有單詞悬蔽,哈哈扯躺,又少記憶一個單詞。
20.model/'mɑdl/
模型蝎困,我們在很多的時候都用到了這個單詞录语,在DRF框架我們在下面的情況中用到了這個單詞。指明該序列化器處理的數(shù)據(jù)字段從模型類BookInfo參考生成禾乘。
class BookInfoSerializer(serializers.ModelSerializer):
"""圖書數(shù)據(jù)序列化器"""
class Meta:
model = BookInfo
fields = '__all__'
21.fields/'fildz/
字段澎埠,指明該序列化器包含模型類中的哪些字段,'all'指明包含所有字段始藕。上面的例子就用到了這個單詞蒲稳。
22.queryset
查詢集,這個也是組合單詞伍派。
class BookInfoViewSet(ModelViewSet):
# 指明該視圖集在查詢數(shù)據(jù)時使用的查詢集
queryset = BookInfo.objects.all()
# 指明該視圖在進行序列化或反序列化時使用的序列化器
serializer_class = BookInfoSerializer
23.通用參數(shù):
參數(shù)名稱 | 說明 |
---|---|
read_only | 表明該字段僅用于序列化輸出江耀,默認False |
write_only | 表明該字段僅用于反序列化輸入,默認False |
required | 表明該字段在反序列化時必須輸入诉植,默認True |
default | 序列化和反序列化時使用的默認值 |
allow_null | 表明該字段是否允許傳入None祥国,默認False |
validators | 該字段使用的驗證器 |
error_messages | 包含錯誤編號與錯誤信息的字典 |
label | 用于HTML展示API頁面時,顯示的字段名稱 |
help_text | 用于HTML展示API頁面時倍踪,顯示的字段幫助提示信息 |
24.instance /'?nst?ns/
實例系宫,我們下面的這種情況下用到了:
Serializer(instance=None, data=empty, **kwarg)
25.context/'kɑnt?kst/
環(huán)境;上下文
serializer = AccountSerializer(account, context={'request': request})
通過context參數(shù)附加的數(shù)據(jù)建车,可以通過Serializer對象的context屬性獲取扩借。
26.validators
驗證器,沒有查到音標缤至,只有網(wǎng)絡(luò)釋義潮罪。
在序列化器中需要同時對多個字段進行比較驗證時,可以定義validate方法來驗證:
btitle = serializers.CharField(label='名稱', max_length=20, validators=[about_django])
上面的about_Django是我們定義的補充驗證函數(shù)名。
27.params /?p?r??m/
參數(shù),這個大家不陌生晶府,經(jīng)彻仪看見。
28.generic /d??'n?r?k/
類的寄啼,是形容詞。視圖的兩個基類中GenericAPIView就有這個單詞。
29.format /'f?rm?t/
格式
30.retrieve/r?'triv/
檢索细层,我們通常用這一個操作,來表示查找指定的信息唬涧。
31.Destroy/d?'str??/
破壞疫赎,我們通常用這一個操作,來表示刪除指定的信息碎节。
32.router /'r?t?/
路由器捧搞,我們指的可不是路由器了,它指的也不是視圖函數(shù)狮荔,而是封裝了視圖函數(shù)和請求的url的映射關(guān)系的一個東西胎撇。
33.Authentication /?,θ?nt?'ke??n/
認證,我們DRF框架中的高級功能之一轴合。
34.Permissions/p?:'mi??nz/
權(quán)限创坞,我們DRF框架中的高級功能之一。
35.Throttling/'θr?tli?/
限流受葛,我們DRF框架中的高級功能之一题涨。
36.Pagination/,p?d??'ne??n/
分頁,我們DRF框架中的高級功能之一总滩。
37.Exceptions /?k's?p??n/
異常處理纲堵,,我們DRF框架中的高級功能之一闰渔。