苏州学校网站建设,上海网站建设网站制作,什么是展示型网站建设,wordpress 本地运行目录
装饰器inject_serializer
装饰器atomic
rebase
git 清理add的数据
查看git的当前工作目录
makemigrations文件名称
action(detailTrue, methods[GET])
如何只取序列化器的一个字段进行返回
Response和JsonResponse有什么区别
序列化器填表和单字段如…目录
装饰器inject_serializer
装饰器atomic
rebase
git 清理add的数据
查看git的当前工作目录
makemigrations文件名称
action(detailTrue, methods[GET])
如何只取序列化器的一个字段进行返回
Response和JsonResponse有什么区别
序列化器填表和单字段如何写
序列化器里包含多对象数据-序列化器嵌套序列化器
from django.db.models import Q的Q对象有什么用是什么 装饰器inject_serializer 用于动态地将一个序列化器serializer注入到Django REST frameworkDRF视图中。
举个例子
from blue_krill.web.drf_utils import inject_serializerinject_serializer(body_inserializers.SLZ1, outserializers.SLZ2, tags[项目A], operation_summary获取B)def xxx(self, request, args):pass
以上
body_in: 指定请求体的序列化器这里使用的是 serializers.SLZ1。out: 指定响应体的序列化器这里使用的是 serializers.SLZ2。tags: 对 API 分类方便在生成的 API 文档中查找比如swagger。这里标签项目A。operation_summary: 提供 API 的简短描述这里描述获取B。
通过该装饰器可以让 API 接口更具可读性和规范性同时也能方便生成 API 文档。
在swagger中的显示就是 装饰器atomic
在 Django 中用于确保一个函数或方法在数据库中执行的操作具有原子性。
from django.db.transaction import atomic # transaction 即事务的意思atomic
def create_user_and_profile(username, email, age):user User.objects.create(usernameusername, emailemail)profile UserProfile.objects.create(useruser, ageage)
相当于在视图函数中开了个事务主要目的是维护DB的一致性和完整性。 rebase
大家可能都是常用merge去合并这样能保留具体的commit记录但对不复杂或说不大型的项目rebase其实更简洁干净些。
git checkout v1
git rebase master
v1合并到master往往还要解决冲突就处理后git add File然后git rebase git 清理add的数据
从暂存区中移除单个文件
git restore --staged file-path
从暂存区中移除多个文件
git restore --staged file-path-1 file-path-2 ... 从暂存区中移除所有文件原来冒红冒黄的文件又恢复冒红冒黄
git restore --staged . 查看git的当前工作目录
场景比如git add需要直接加文件的方式
git rev-parse --show-toplevel makemigrations文件名称
为让迁移文件更加清晰目的迁移文件往往是要命名规范的指定生成文件名称
python manage.py makemigrations --name xxxx
python manage.py makemigrations -n xxxx
如果意外直接创建了那么修改文件名即可但前缀的0001这种数字不要去修改关联到这个文件名的name也要修改比如一般是下一个迁移文件用到即可。
但注意如果已经migrate的那么需要在django_migration修改对应表名如果为migrate那就不需要。 action(detailTrue, methods[GET])
detail标识是否针对单个对象
action(detailTrue, methods[GET]) 》 /users/{id}/get_username/
action(detailFalse, methods[GET]) 》 /users/get_username/ 如何只取序列化器的一个字段进行返回
from rest_framework import serializers
from myapp.models import MyModelclass MyModelSerializer(serializers.ModelSerializer):class Meta:model MyModelfields [field_name, another_field]# 假设你已经有一个 MyModel 实例
my_model_instance MyModel.objects.get(pk1)# 使用序列化器序列化实例
serializer MyModelSerializer(my_model_instance)# 获取序列化后的数据
serialized_data serializer.data# 仅提取名为 field_name 的字段
field_name_data serialized_data[field_name]# 返回或使用 field_name 字段的值
return field_name_data Response和JsonResponse有什么区别
Response 和 JsonResponse 都是用于构建和返回 HTTP 响应的 Django 类但它们之间存在一些差异。 来源Response 类来自 Django REST frameworkDRF通常在 DRF 视图和 APIView 中使用。JsonResponse 类是 Django 内置的用于构建 JSON 响应。 内容类型Response 类可以处理多种内容类型如 JSON、XML 等默认情况下它会根据客户端请求的 Accept 头选择合适的内容类型。JsonResponse 类专门用于构建 JSON 响应其 Content-Type 头始终设置为 application/json。 序列化Response 类可以与 DRF 序列化器一起使用自动序列化和反序列化数据。JsonResponse 类仅处理已序列化为 JSON 的数据您需要确保传递给 JsonResponse 的数据是 JSON 可序列化的例如 Python 字典、列表等。
如果正使用 Django REST framework 构建 API建议使用 Response 类。如果您正在使用 Django 的基本视图或类视图并需要返回 JSON 数据可以使用 JsonResponse 类 序列化器填表和单字段如何写
class HahaSLZ(serializers.Serializer):haha_id serializers.IntegerField(requiredFalse)class Meta:model Userfields [field.name for field in User._meta.get_fields()] [haha_id] # 注直接__all__并不能涵盖haha_id 序列化器里包含多对象数据-序列化器嵌套序列化器
results该字段的类型是 AASLZ并设置了 manyTrue 参数表示这是一个列表其中包含多个 AASLZ实例。
class AASLZ(serializers.Serializer):user serializers.CharField(help_text用户, requiredTrue)class BBSLZ(serializers.Serializer):results AASLZ(help_text用户列表, manyTrue) from django.db.models import Q的Q对象有什么用是什么
Django 的 Q 对象是一个用于构建更复杂查询的工具。它允许您在查询中使用 OR 语句、NOT 语句以及更高级的查询结构。Q 对象可以与 filter()、exclude() 和 get() 等查询方法一起使用。