随笔分类 - Django
摘要:前言 mixins翻译成中文是混入,组件的意思。在DRF中,针对获取列表,检索,创建等操作,都有相应的mixin,一般我们自定义创建的类视图都会继承自GenericAPIView和Mixins一起使用 mixins工具集 mixins.py文件中有5个类,分别是 CreateModelMixin:类
阅读全文
摘要:源码分析 GenericAPIView继承自APIView,也就是在APIView基础上再做了一层封装,源码如下: class GenericAPIView(views.APIView): queryset = None serializer_class = None lookup_field =
阅读全文
摘要:视图家族 drf的视图总共分为以下4个,对应4个源码文件 views:视图类 generics:工具视图 mixins:视图工具集 viewsets:视图集 学习曲线 我们学习视图,可以按照以下的曲线来学习 APIView:在views源码文件下面,继承自View,前面我们已经分析过源码了 Gene
阅读全文
摘要:前言 有时候我们使用drf的Response,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式 return Response({ "status": 0, "message": "成功", "results": serializer.data }) 这样会非常麻烦,我们想默认就有stat
阅读全文
摘要:APIView视图类 在DRF中,推荐使用类视图,因为类视图可以通过继承的方式把一些重复性的工作抽取出来,而使得代码更加简洁。当然如果你不想使用类视图,那么就用@api_view装饰器包裹一下就可以。 关于视图的逻辑,一共有10个 单查、群查 单增、群增 单删、群删 单全局改、单局部改 群全局改、群
阅读全文
摘要:前言 渲染模块的原理和解析模块是一样,drf默认的渲染有2种方式,一种是json格式,另一种是模板方式。 渲染模块源码入口 入口:APIView类中dispatch方法中的:self.response = self.finalize_response(request, response, *args
阅读全文
摘要:异常模块源码入口 APIView类中dispatch方法中的:response = self.handle_exception(exc) 源码分析 我们点击handle_exception跳转,查看该方法源码 def handle_exception(self, exc): """ Handle a
阅读全文
摘要:前言 上一篇分析了请求模块的源码,如下: def initialize_request(self, request, *args, **kwargs): """ Returns the initial request object. """ parser_context = self.get_par
阅读全文
摘要:前言 APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块 请求模块:request对象 源码入口 APIView类中dispatch方法中的:request=self.iniialize_request(*args, *
阅读全文
摘要:前言 一般我们写完序列化以后,我们就会开始写视图了,drf中我们一般使用CBV的方式,也就是类视图的方式,最基础的我们会使用from rest_framework.views import APIView,APIView继承自View,关于视图的详解,我们后续再细讲。本章介绍drf的请求生命周期 前
阅读全文
摘要:前言 我们上篇文章使用到了Serializer类,可能有小伙伴说太过复杂,那么本篇就为大家带来更加简便的序列化类ModelSerializer ModelSerializer 先来看下ModelSerializer的代码结构如下: 可以看到ModelSerializer是继承自Serializer,
阅读全文
摘要:前言 上一篇文章我们讲述了序列化,这篇就带大家一起来实现以下序列化 Serializer 我们使用序列化类Serializer,我们来看下源码结构,这里推荐使用pycharm左边导航栏的Structure,可以清晰的看到一个文件的结构,如下图 我们会发现Serializer继承自BaseSerial
阅读全文
摘要:序列化与反序列化 一般后端数据返回给前端的数据格式都是json格式,简单易懂,但是我们使用的语言本身并不是json格式,像我们使用的Python如果直接返回给前端,前端用的javascript语言是识别不出的,所以我们需要把python语言转换为通用的json格式的数据,在django中就是将orm
阅读全文
摘要:restful接口规范 什么是接口规范?接口规范就是为了采用不同的后台语言,也能使用同样的接口获取到同样的数据。如何写接口:接口规范是规范化书写接口的,写接口要写url、响应数据 注:如果将请求参数也纳入考量范围,那就是在写接口文档 url restful接口的url规范,遵循以下6个规范 1.
阅读全文
摘要:DRF介绍 DRF是Django Rest Framework单词的简写,是在Django框架中实现Restful API的一个插件,使用他可以非常方便的实现接口数据的返回。Django中也可以使用JsonResponse直接返回json格式的数据,但是DRF相比直接使用Django返回json数据
阅读全文
摘要:celery介绍 Celery是由Python开发、简单、灵活、可靠的分布式任务队列,是一个处理异步任务的框架,其本质是生产者消费者模型,生产者发送任务到消息队列,消费者负责处理任务。Celery侧重于实时操作,但对调度支持也很好,其每天可以处理数以百万计的任务。特点: 简单:熟悉celery的工作
阅读全文
摘要:前言 环境celery==5.0.2 在安装完celery后,运行celery会报以下错误 ModuleNotFoundError: No module named 'click._bashcomplete' 解决方案 报错原因是说click模块中没有._bashcomplete,经过查阅资料后发现
阅读全文
摘要:前言 动态网站的基本权衡是,它们是动态的。每次用户请求页面时,Web服务器都会进行各种计算 - 从数据库查询到模板呈现再到业务逻辑 - 以创建站点访问者看到的页面。从处理开销的角度来看,这比标准的文件读取文件系统服务器要耗时多了。对于大多数Web应用程序来说,这种开销并不是什么大问题。因为大多数We
阅读全文
摘要:安装redis 1.使用Homebrew安装Redis brew install redis 执行上述命令后出现以下内容,则成功安装 Download failed: https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/redis-6.0.9.b
阅读全文
摘要:前言 django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪、错误代码之类的详细信息。 logging主要由4部分组成:Loggers、Handlers、Filters和Formatters s
阅读全文

浙公网安备 33010602011771号