# 序列化

关于定义模型时的 choice 参数:https://aber.sh/articles/Django-Model-CharField-Choice/

模型中的 class meta: https://aber.sh/articles/Django-Model-CharField-Choice/

# 在 default 中填入的内容是 LANGUAGE_CHOICES 中元组的第一个值
language = serializers.ChoiceField(choices=LANGUAGE_CHOICES, default='python')

序列化字段: https://q1mi.github.io/Django-REST-framework-documentation/api-guide/fields_zh/#style

def update(self, instance, validated_data):
        """
        根据提供的验证过的数据更新和返回一个已经存在的`Snippet`实例。
        """
        instance.title = validated_data.get('title', instance.title)
        instance.code = validated_data.get('code', instance.code) # 这里的get中传入一个instance有点不明白

创建的一个模型对象

1663069014390

1663069027725

序列化

1663069335580

1663069383977

序列化后的 data 字段是类似原生字典的类型

1663069767358

1663070001093

python 字符串和字节串,https://www.cnblogs.com/springsnow/p/13174511.html#:~:text = 字节串(bytes)由 多个字节 组成,以字节为单位进行操作。 Byte 代表 1 字节,1 字节包含,位(相当于 4 位二进制数,最小值为 0 ,最大值为 15)可以用一个十六进制数来表示,因此 每字节需要两个十六进制数表示 ,

BytesIO:https://blog.csdn.net/u012206617/article/details/103401276

1663070683214

1663070998351

Serializer 负责的是字典类型(python 原生字典或者 def 的字典)和数据库模型类型的转换。另外还有字典类型和字节串类型的转换。

多个同时转换也可以,同时会自动变量列表,注意下面的字节串,整个列表被单引号包裹。

1663071229766

python 的 repr 函数

1663071563797

重要的是要记住,ModelSerializer 类并不会做任何特别神奇的事情,它们只是创建序列化器类的快捷方式:

  • 一组自动确定的字段。
  • 默认简单实现的 create () 和 update () 方法。

super 函数中传入类名:https://www.runoob.com/python/python-func-super.html

1663072389992

@csrf_exempt https://www.cnblogs.com/renpingsheng/p/9756051.html

url 的用法:https://blog.csdn.net/sinat_35637319/article/details/78878131

1663074129396

上面的截图中,官网使用的 from django.conf.urls import url 已经不支持了,改成下面的形式, re_path 是使用的正则表达式。

1663074116457

# 请求和响应

1663074732049

1663075090707

1663075233278

1663075256757

1663075271421

# 基于类的视图(CBV)

1663075509780

1663075524188

1663075556891

1663076089433

1663076181739

# 认证和权限

外键,正向查询和反向查询:https://blog.csdn.net/zhubaoJay/article/details/96592620 https://zhuanlan.zhihu.com/p/25393972

删库

1663082546793

外键字段在本表中的名称

1663082709832

1663082667068

1663082818167

1663083832929

1663083844383

创建超级使用者:https://www.geeksforgeeks.org/how-to-create-superuser-in-django/

django 的 auth 用户认证:https://www.runoob.com/django/django-auth.html

coodie 和 session: https://www.runoob.com/django/django-cookie-session.html

django rest-framework reverse: https://blog.csdn.net/qq_22918243/article/details/90200863

# 视图集和路由器

1663152012172

perform_create 在 serializer 保存新的数据模型对象时调用,源对象有些字段尚没有值,可以在这里添加值

写一个视图函数看看 self.request.user 是什么

设模型有字段 a 和字段 b,当 b 的值要依赖于 a 时,此时需要重写模型的 save 方法,在 save 方法中根据 a 的取值设置 b 的值

1663161604495

action:https://blog.csdn.net/qq_38669698/article/details/108601061

format_suffix_patterns : https://www.bookstack.cn/read/django-rest-framework-api-guide/api-guide-format-suffixes.md

1663168426435

1663168452254

问题: request.user 是这种类型的话,如果我想存在数据库中,应该用什么类型的字段呢

urlconf:https://docs.djangoproject.com/zh-hans/4.1/topics/http/urls/