随笔分类 - Django
Python的Django框架的学习与知识笔记
摘要:Django 请求到来与路由匹配 说明:本部分主要讲述请求到来与路由匹配的部分; 1. 请求到来 上次分析到了 wsgi 的函数内部处理信息,我们已经知道请求到了之后会执行__call__方法,下面将继续分析__call__方法。 class WSGIHandler(base.BaseHandler
阅读全文
摘要:Django 源码(三)-应用 & 中间件 & 配置文件 本部分主要是在为程序启动时候加载应用以及中间件的信息; 1. 应用的加载 在程序启动的部分,我们分析到程序执行的时候都会执行一个setup()函数,相关的内容可以看之前的章节的部分; def setup(set_prefix=True): "
阅读全文
摘要:Django 源码分析(二):wsgi & asgi 说明:上一节主要讲述了 django 项目的启动,后期主要会根据 django 请求的生命周期进行分析; 参考文章:https://zhuanlan.zhihu.com/p/95942024 参考文章:https://zhuanlan.zhihu
阅读全文
摘要:Django 源码分析(一):命令分析 说明:本部分主要介绍 Django 程序在开发中常用的命令是如何控制生成的进行解析; 1. 分析入口 启动命令: python manage.py runserver 127.0.0.1:8000 项目启动的时候执行的 manage.py 脚本,相关代码如下:
阅读全文
摘要:django多App & 项目瘦身 介绍:django的功能非常强大,但是目录结构和原生自带的功能也是能被我们选择使用的。 1.django目录 主要分为两种:pycharm 直接创建好的单应用,和手动创建的多应用。 1.1 原生目录 下面显示一个以pycharm创建的 django 项目为例进行介
阅读全文
摘要:drf的使用及源码流程 1.drf(前戏) 2.drf(一)restful规范 3.drf(二)认证 4.drf(三)权限控制 5.drf(四)频率与节流 6.drf(五)版本控制 7.drf(六)解析器 8.drf(七)序列化 9.drf(八)分页 10.drf(九)视图 11.drf(十)路由与
阅读全文
摘要:drf(十二)解析drf通过csrf验证 问题引出:django 网站中的发送 post 请求时会被加密,如果不设置会无法请求。 1.什么是csrf 跨站请求伪造(CSRF)与跨站请求脚本正好相反。跨站请求脚本的问题在于,客户端信任服务器端发送的数据。跨站请求伪造的问题在于,服务器信任来自客户端的数
阅读全文
摘要:JWT 介绍: # jwt 一般用于用户认证(前后端分离,微信小程序,uniapp)的开发 json web token 认证流程。 1. 区别 传统认证 用户登录,服务端返回token,并将token保存在服务端 以后用户再来访问,需要携带token,服务端获取token后,再去数据库中获取tok
阅读全文
摘要:drf(十)路由与渲染器 1.路由系统 1.1 自定义路由 # http://127.0.0.1:8000/api/v1/v1/?format=json # 以json的形式进行渲染 url(r'^(?P<version>[v1|v2]+)/v1/$', views.View1View.as_vie
阅读全文
摘要:drf(九)—视图 说明:drf 的开发一般使用 CBV 进行开发,Django 的原生视图类是 View 类,drf 中使用较普通的是APIView。 1.GenericAPIView 该类继承于APIView,只是封装了一些调用方法,完成我们的常用操作。 使用方式 class View1View
阅读全文
摘要:drf(八)—分页 说明:分页的原理与数据库中的 limit 截取相关,也涉及limit offset的使用,内部原理相似,但是rest_framework中封装了应用函数。 分页基类 class BasePagination: display_page_controls = False def p
阅读全文
摘要:drf(七)—序列化 说明:由于序列化涉及内容较多且关系到数据库(ORM),本次先说明使用方式,随后再进行部分源码的剖析; 1. 简单使用 1.1 Serializer使用 # 编写序列化类 class RoleSerializer(serializers.Serializer): # 其中的变量名
阅读全文
摘要:drf(六)—解析器 问题引出:请求头一般都会有多种的形式。最常见的是json形式,和form-data。其中json是最常见的形式。 解析器,一般用来解析用户发送过来的数据; 1.请求头要求 # django:request.POST/ request.body # Content-Type: a
阅读全文
摘要:drf(五)—版本控制 1.源码流程 与前几节的介绍相同源码入口依旧为dispatch()和inital(); def initial(self, request, *args, **kwargs): self.format_kwarg = self.get_format_suffix(**kwar
阅读全文
摘要:drf(四)访问频率与节流 问题引出:网站一般都存在爬虫机制,频率控制就是一种,如果一个IP或者用户在短时间内发起了多次请求显然不是正常的应用请求,此时应该加以访问频率的控制; 1.访问频率源码流程 与前几节的介绍相同源码入口依旧为dispatch()和inital(); def initial(s
阅读全文
摘要:drf(三)—权限控制 问题引出:有些功能(数据)是需要具备一定权限的的用户才能进行访问,例如:VIP才有查看某些数据的功能。 上节内容的补充: def _authenticate(self): for authenticator in self.authenticators: #循环配置文件中的列
阅读全文
摘要:drf认证 官网地址:https://www.django-rest-framework.org/api-guide/requests/ 1.drf的执行流程与源码剖析 from rest_framework.views import APIView class StudentView(APIVie
阅读全文
摘要:django补充 参考文章:https://blog.csdn.net/weixin_42134789/article/details/82772027 参考文章:https://www.cnblogs.com/fungitive/p/9136158.html 1.模板标签 问题引出:什么是模板标签
阅读全文
摘要:drf(一)—restful规范 restful规范 这是开发API开发的建议规范; 根据method不同做不同的操作; GET :从服务器取出资源(一项或多项) POST :在服务器新建一个资源 PUT :在服务器更新资源(客户端提供改变后的完整资源) PATCH :在服务器更新资源(客户端提供改
阅读全文
摘要:drf 前戏—CBV的使用及源码流程 参考文献:https://www.cnblogs.com/wupeiqi/articles/7805382.html 视图:django的视图分为FBV与CBV 反射的相关知识:https://www.cnblogs.com/Blogwj123/p/158283
阅读全文