• 2024-11-18Django中QuerySet
    1.QuerySet概念QuerySet是DjangoORM(Object-RelationalMapping)中的对象,用于表示从数据库查询出来的一组数据。可以看作是数据库查询结果的抽象表示,包含零个或多个模型实例。特性延迟加载:QuerySet是惰性的,只有在需要时才会执行真正的数据库查询。例如,调用list
  • 2024-10-05分页使用示例
    1.代码classUserModelSerializer(serializers.ModelSerializer):role_display=UserRoleSerializer(many=True,source='roles',read_only=True)classMeta:model=models.Userfields=["id","username",&#
  • 2024-10-01关于filter数据的用法
    fromrest_framework.filtersimportBaseFilterBackendclassMenuFilterBackend(BaseFilterBackend):deffilter_queryset(self,request,queryset,view):ifrequest.method=="DELETE":returnquerysetfolder=reque
  • 2024-08-016.三大认证等
    【一】三大认证#认证self.perform_authentication(request)#权限self.check_permissions(request)#频率self.check_throttles(request)【二】认证1)使用新建一个py文件(authentication.py)写一个类继承BaseAuthentication重写authenticate函数fromrest_framew
  • 2024-07-17使用Django框架实现音频上传功能
    数据库设计(models.py)classMusic(models.Model):"""音乐"""name=models.CharField(verbose_name="音乐名字",max_length=32)singer=models.CharField(verbose_name="歌手",max_length=32)#本质上数据库也是Cha
  • 2024-07-0257.Django框架之序列化输出
    Django框架【一】序列化组件1)使用案例在前端获取到后端用户表里面的所有数据,并且格式是列表套字典#创建模型表classUser(models.Model): username=models.CharField(max_length=32,verbose_name="姓名")age=models.IntegerField(verbose_name="年龄")2)基于J
  • 2024-05-15排序、过滤、分页
    排序、过滤、分页1.排序1.1使用条件#必须是查询所有接口--》restful规范中:地址栏中带过滤条件 http://127.0.0.1:8008/app01/api/v1/books/?ordering=price#必须是继承GenericAPIView的视图类---》继承APIView是不能这么配置的1.2使用排序#1.引入相关排序相关
  • 2024-05-06super & self
    在一本过时的django里看到一段代码:classPublishedManager(models.Manager):defget_queryset(self):returnsuper(PublishedManager,self).get_queryset().filter(status='published')心想这写的这是啥啊,难道是递归?太复杂了!认真学习之后才知道,super有两个参
  • 2024-04-25DRF之过滤 排序 分页
    DRF之过滤排序分页使用【过滤排序分页】都需要在继承了GenericAPIView的视图类下使用并指定类属性【queryset和serializer_class】【一】过滤#所有过滤类都继承【BaseFilterBackend】fromrest_framework.filtersimportBaseFilterBackend【1】drf自带的过滤#
  • 2024-04-23DRF之过滤类源码分析
    DRF之过滤类源码分析【一】过滤类介绍及BaseFilterBackendDjangoRESTframework(DRF)中的过滤类允许你在API视图中对查询进行过滤,以根据特定条件筛选结果集。过滤类是DRF的一部分,它允许你轻松地添加各种过滤选项,以满足不同用例的需求。classBaseFilterBackend:"""
  • 2024-04-22DRF之视图组件
    【四】视图组件图源:drf(详细)_51CTO博客_什么是drf【1】两个视图基类【1.1】APIView请在【View】中查看详细【1.2】GenericAPIView【1.2.1】常用类属性基本设置:以下属性控制着基本视图的行为。queryset用于从视图返回对象的查询结果集。通常,你必须设置此
  • 2024-04-21过滤与排序
    排序与过滤​ 查询所有才需要过滤,排序是按照某个规则排序排序简单使用导入类OrderingFilter在视图类重写filter_backends属性,在列表内填入导入的类重写ordering_fields属性,在列表内填入字段classBookView(ModelViewSet):queryset=Book.objects.all()serial
  • 2024-04-1706-排序 分页 过滤
    排序查询多条和全部才会用到排序排序关键字:ordering查询字符串查询字符串(QueryString)是指在URL中以问号(?)开始的部分,用于向服务器传递参数。它由一个或多个键值对组成,每个键值对之间用&符号分隔。例如,在以下URL中,查询字符串是?page=2&category=books:在django种如
  • 2024-03-0509django
    作业#1.用户名动态校验<p>username:<inputtype="text"id="i1"><spanstyle="color:red"id="error"></span></p><script>//这个功能可以使用前端代码完成但是安全性不高最好还是经过后端(前端的校验是弱不禁风的!!!)
  • 2024-02-26django如何将视图的数据表下载下来?(包括数据过滤)
    思路关键:django的视图本身返回的是json数据,而pandas本身就可以对json数据形成excel输出。所以,现在的关键是如何拿到需要的json数据?突破点:filterset还是serializers,都是可以支持手动使用的。defgenerate_queryset_excel(queryset,filterset_cls,serializer_cls,request=None
  • 2024-01-25queryset必知必会13条
    queryset必知必会13条<1>all():查询所有结果<2>filter(**kwargs):它包含了与所给筛选条件相匹配的对象<3>get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4>exclude(**kwargs):它包含了与所
  • 2024-01-14博客后台接口分页优化-访问记录篇
    博客后台接口优化-访问记录
  • 2024-01-07Django quertset、set的序列化
    一、几种序列化importjson#序列化querysetdefxuliehuaQueryset(request):querylist=models.LsTable.objects.all()querylist_json=serializers.serialize("json",querylist)returnHttpResponse(querylist_json)#序列化setdefxuliehuaQueryset(
  • 2023-12-28der 入门-精通 09days
    排序排序快速使用(GenericAPIView)1.只有查询所有需要排序2.如何使用1必须是继承GenericAPIView及其子类2在类中配置类属性filter_backends=[OrderingFilter]3类中写属性ordering_fields=['price','id']#必须表的字段4
  • 2023-12-26源代码下的关系
    get请求获取多个数据defget(self,request):user_gs=models.User.objects.all()user_set=UserSerializer(instance=user_gs,many=True)returnResponse(user_set.data)viewsAPIViewpost请求添加数据get请求获取单个数据defpost(self,request):user_set=UserSerializer(
  • 2023-11-28查询表记录API
    <1>all():查询所有结果<2>filter(**kwargs):它包含了与所给筛选条件相匹配的对象<3>get(**kwargs):返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4>exclude(**kwargs):它包含了与所给筛
  • 2023-11-27django-单表操作
    一、常用字段和非常用字段#常用字段-IntegerField整数-AutoField自增字段-BooleanFieldbool类型-CharField字符串类型-DateField日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。-DateTimeField日期时间字段,格
  • 2023-11-27Django - 多条queryset合并,并排序
     fromitertoolsimportchainfromoperatorimportattrgetter#拿到多条querysetqueryset1=model.objects.filter(status=1).all()queryset2=model.objects.filter(status=2).all()#将上面两组查询结果合并,并设置排序方式:-create_timenew_queryset=sorted
  • 2023-11-22django查询中如何进行查询优化
    一.性能方面1.connection.queries>>>fromdjango.dbimportconnection>>>connection.queries[{'sql':'SELECTpolls_polls.id,polls_polls.question,polls_polls.pub_dateFROMpolls_polls','time':'0.002
  • 2023-11-15Django查看orm内部封装的sql语句的2种形式
    第一种:QuerySet.queryuser_queryset=models.User.objects.values_list('name','age')print(user_queryset.query)结果:SELECT`app01_user`.`name`,`app01_user`.`age`FROM`app01_user` 第二种:执行脚本时打印日志显示到终端将以下代码复制进入settings文件中