DRF框架中的英文单词
1. prefix/'prifɪks/
前缀,我们在路由配置的时候经常看见这个单词。在flask中,我们可以在设置url的时候为了区别视图,在类似功能的url全部加一个前缀。
2. version/'vɝʒn/
版本,这个在计算机上面很常见,在DRF框架中的RESTful设计风格中有一种规范,就是将api的版本号放入url中,如下:(1.0即版本号)
http://www.example.com/api/1.0/foo
3. endpoint/'ɛnd,pɔɪnt/
终点,我们在RESTful设计风格中也称为路径,表示API的具体网址。这里就简单的回顾一下之前的内容:资源作为网址,只能有名词,不能有动词,而且往往与数据库中的表名相对应;还有就是名词用复数。淡然这只是设计风格,如果你几百个接口有那么几个用了动词也是符合Restful设计风格的。
4. filter/'fɪltɚ/
过滤,我们在DRF框架的高级功能中,就有过滤这一项。可以在url地址中传参数,我们进行过滤。
5. StatusCodes
状态码,当然我们在用的时候都是直接使用了status状态这个单词用来表示状态码了。这里有一个注意点就是我们在项目中状态码尽量不要直接写数字,而是用常量,这样别人看到也好理解。
6. Errorhandling
错误处理,在Restful设计风格中,如果状态码是4xx,我们就应该返回错误的信息,通常来说是下面这个样子,但是不唯一:
{error:"<error message>"}
7. PATCH
这个操作在现在基本上是不用的,但是我们了解一下,path只是将更改的内容发送,put将更改后所有的内容都发送过去。这个在网上说法不一,先按这种理解,毕竟没人用这种操作方式了,而是用put。
8. HypermediaAPI
超媒体,这个也是理解即可,RESTful API最好做到Hypermedia(即返回结果中提供链接,连向其他API方法),使得用户不查文档,也知道下一步应该做什么。
{
"current_user_url":"https://api.github.com/user",
"authorizations_url":"https://api.github.com/authorizations",
//...
}
9. gender/'dʒɛndɚ/
性别,我们在表的字段中经常看见这一单词。以后大家千万不要再用sex表示性别了,它表示性更多一点,哈哈哈。
10. title/'taɪtl/
标题,我们在设计模型类的时候用到了这一单词,很简单,大家过一下即可。
11. publication/,pʌblɪ'keʃən/
出版,我们在pub_date出版日期时候见过他的缩写。
12. comment/'kɑmɛnt/
评论,比如书的评论信息。还有read读这个单词,我们就不单独说了,大家都知道。
13. image/'ɪmɪdʒ/
影像,肖像,我们常用来表示图片。
14. Meta/'mɛtə/
n.人名,名词有人名的意思。我一直以为是什么单词的缩写,但是没有想到竟然有这个单词,前端中也表示标签的优化、原标签。后端我们在设计模型类时自定义表名的时候用到了。
15. verbose/vɝ'bos/
冗长的;啰嗦的,我们使用verbose_name指明一个易于理解和表述的对象名称。
classMeta:
db_table ='tb_books' # 指明数据库表名
verbose_name ='图书' # 在admin站点中显示的名称
verbose_name_plural = verbose_name # 显示的复数名称
16. plural/'plʊrəl/
复数,上面的这个单词是复数的意思。
17. detail/dɪˈtel/
详细,我们在展示详情的时候,视图名称通常会用到这个单词。
18. urlpatterns
这其实不是一个单词,我们只是将url和patterns(模式)组合了一下。我们用来表示路由的url的路由列表。但是pattern在计算机中通常用来表示模式。
19. Serialization/ˌsɪərɪrlaɪ'zeɪʃn/
序列化,这个单词全球只有美式音标,统一的。应该是美国人发明的吧,毕竟美国的计算机发展的相当棒。序列化这个定义很很重要,给大家强调一下:在Django中,我们可以简单的理解为将模型类对象转化成字典或字符串的这个过程。反过来就是反序列化,但是没有单词,哈哈,又少记忆一个单词。
20. model/'mɑdl/
模型,我们在很多的时候都用到了这个单词,在DRF框架我们在下面的情况中用到了这个单词。指明该序列化器处理的数据字段从模型类BookInfo参考生成。
classBookInfoSerializer(serializers.ModelSerializer):
"""图书数据序列化器"""
classMeta:
model =BookInfo
fields ='__all__'
21. fields/'fildz/
字段,指明该序列化器包含模型类中的哪些字段,'all'指明包含所有字段。上面的例子就用到了这个单词。
22. queryset
查询集,这个也是组合单词。
classBookInfoViewSet(ModelViewSet):
# 指明该视图集在查询数据时使用的查询集
queryset =BookInfo.objects.all()
# 指明该视图在进行序列化或反序列化时使用的序列化器
serializer_class =BookInfoSerializer
23.通用参数:
参数名称 | 说明 |
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/
环境;上下文
serializer =AccountSerializer(account, context={'request': request})
通过context参数附加的数据,可以通过Serializer对象的context属性获取。
26. validators
验证器,没有查到音标,只有网络释义。
在序列化器中需要同时对多个字段进行比较验证时,可以定义validate方法来验证:
btitle = serializers.CharField(label='名称', max_length=20, validators=[about_django])
上面的about_Django是我们定义的补充验证函数名。
27. params/ˌpærəˈm/
参数,这个大家不陌生,经常看见。
28. generic/dʒə'nɛrɪk/
类的,是形容词。视图的两个基类中GenericAPIView就有这个单词。
29. format/'fɔrmæt/
格式
30. retrieve/rɪ'triv/
检索,我们通常用这一个操作,来表示查找指定的信息。
31. Destroy/dɪ'strɔɪ/
破坏,我们通常用这一个操作,来表示删除指定的信息。
32. router/'rʊtɚ/
路由器,我们指的可不是路由器了,它指的也不是视图函数,而是封装了视图函数和请求的url的映射关系的一个东西。
33. Authentication/ɔ,θɛntɪ'keʃən/
认证,我们DRF框架中的高级功能之一。
34. Permissions/pə:'miʃənz/
权限,我们DRF框架中的高级功能之一。
35. Throttling/'θrɔtliŋ/
限流,我们DRF框架中的高级功能之一。
36. Pagination/,pædʒɪ'neʃən/
分页,我们DRF框架中的高级功能之一。
37. Exceptions/ɪk'sɛpʃən/
异常处理,我们DRF框架中的高级功能之一。