django相关面试题

1. auto_add与auto_add_now

作用于时间类型的字段,auto_add_now只在创建数据的时候生效,auto_now在修改数据的时候生效
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)

注意这两个属性只有在使用django的orm的create和save方法时生效,update时不行的,需要自己手动添加这个字段值的更新

2. 关于rest framework

1. 路由:使用router进行注册。framework里面有个routers包  router = routers.DefaultRouter()
2. 权限,继承BasePermission类,写一个has_permission方法,返回true和false
3. 访问频率限制,这个一般用不到
4. 序列化。用于字段的校验,查数据查哪些字段等等,继承Serializer或者ModelSerializer(也是继承了Serializer)
5. pageNumberPagination类

https://www.cnblogs.com/zwq-/p/10269169.html
https://blog.csdn.net/m0_61810345/article/details/136181103
1. APIView
是REST framework提供的所有视图类的基类,继承自Django的View父类。
  它新增了authentication_classes,permissoin_classes, throttle_classes
2. GenericAPIView
  serializer_class
  get_serializer_class(self) 通过判断使用不同的序列化类
  queryset
  get_queryset(self) 返回queryset
  get_object(self) 返回一个记录对象
3. 5个视图拓展类(也叫混入类), 配合GenericsAPIView使用
  ListModelMixin 列表视图,def list 方法实现
  CreateModelMixin 创建,create方法
  Retrieve
  Update
  Destroy


4. 视图集ViewSet,路由需要添加{'get': 'list'}
5. GenericViewSet 与5个视图类配合使用
6. ModelViewSet 最全

3. 跨域问题

corheadrs包,做配置
PageNumberPagination

 

posted @ 2024-07-22 18:42  10132714  阅读(1)  评论(0编辑  收藏  举报