随笔分类 - Python
摘要:一、创建Django项目 1、创建project 2、生成project的目录 3、其它常使用的命令 二、项目配置 1、配置模板路径 2、配置静态文件资源 值得注意的是在创建项目时,settings中自动生成STATIC_URL = '/static/',它是引用名,代替STATICFILES_DI
阅读全文
摘要:一、表结构设计 上述包含书籍、出版社、作者模型表,其中出版社和书籍是一对多的关系,作者和书籍是多对多的关系。 二、表操作 (一)一对一操作 以Book表为例,对其进行增、删、改、查: 1、增加操作 create方式 save方式 2、删除操作 3、修改操作 注意:get()方法获取的内容更新的是所有
阅读全文
摘要:一、ContentType概述 ContentType位于django.contrib.contenttypes.models.ContentType,ContentType表示和存储有关项目中安装的模型的信息的实例, 以及安装ContentType新模型时自动创建的新实例 。 ContentTyp
阅读全文
摘要:一、版本控制的使用 版本控制允许在不同的客户端之间更改行为,其实质就是后台根据客户端传递过来的版本信息做相应的动作,比如不同版本对应不同的序列化样式: (一)URLPathVersioning 1、在settings中配置DEFAULT_VERSIONING_CLASS DEFAULT_VERSIO
阅读全文
摘要:一、普通过滤 (一)get_queryset get_queryset方法是GenericAPIView提供的一个方法,旨在返回queryset数据集,而过滤就是要在这个方法返回数据集之前对数据进行筛选,然后返回筛选后的数据即可,那么也就是要求需要重写这个方法: 源码中的这个方法会从视图配置中获得q
阅读全文
摘要:一、内置渲染器 REST框架包括许多内置的Renderer类,它们允许你使用各种媒体类型返回响应。还支持定义你自己的自定义渲染器。 内置渲染器的使用 1、全局设置 可以使用DEFAULT_RENDERER_CLASSES设置全局默认的渲染器集。例如,以下设置将使用JSON作为主要媒体类型: 2、局部
阅读全文
摘要:一、内置解析器 REST 框架包括一些内置的Parser类,允许你接受各种媒体类型的请求。还支持定义自己的自定义解析器,解析器用于解析客户端提交的数据。 内置解析器的使用 1、全局设置 可以使用 DEFAULT_PARSER_CLASSES 设置默认的全局解析器。例如,以下设置将只允许带有 JSON
阅读全文
摘要:一、内置分页API的使用 rest framework内置了三种API可供使用,分别为PageNumberPagination、LimitOffsetPagination以及CursorPagination,其中CursorPagination为加密分页,并且性能最优,因为它会记住上一次页码的位置,
阅读全文
摘要:一、路由组件的使用 1、使用实例 在视图中继承GenericViewSet类来完成功能时,需要自己对路由的写法有所改变,需要在as_view中传入actions字典参数: 但是rest framework中的路由组件完全可以自动生成对应的路由这样的路由。 这样就会生成下面的url形式: 2、参数 r
阅读全文
摘要:一、自定义限流 限流组件又叫做频率组件,用于控制客户端可以对API进行的请求频率,比如说1分钟访问3次,如果在1分钟内超过3次就对客户端进行限制。 1、自定义限流 假设现在对一个API访问,在30s内访问不能超过3次,应该如何实现? 在对应的视图中进行配置: 2、限流原理 在rest framewo
阅读全文
摘要:一、APIView APIView继承的是和django中CBV模式下的View类。View类中的dispatch方法通过反射对不同的请求方法执行不同的函数。而APIView不仅拥有这个特性,而且重要的是是对request进行了重构,以及添加了很多组件,如认证组件、权限组件以及频率组件等。这些都是在
阅读全文
摘要:一、权限组件的使用 1、自定义权限 要实现自定义权限,需要重写BasePermission并实现以下方法中的一个或两个 .has_permission(self, request, view) .has_object_permission(self, request, view, obj) 如果请求
阅读全文
摘要:一、序列化 1、序列化准备 以下列表进行举例说明: 2、Serializer 自定制显示方式 Serializer相当于django中Form,必须自己自定义字段,以Book表为例: Book表中既有ForeignKey字段又有ManyToMany字段,对于ForeignKey字段的显示可以使用so
阅读全文
摘要:一、eval函数的定义 1、定义 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 2、语法 eval(expression[, globals[, locals]]) expression : 表达式。 globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
阅读全文
摘要:一、动态菜单API的生成 1、API 2、MenuModelView 在restframework框架的认证组件中通过 authentication_classes = [AuthToken]进行认证,获得user,从而传入user,从而初始化菜单数据,然后根据数据库中的positionid可以进行
阅读全文
摘要:一、初始化菜单、权限信息 在进行用户名和密码验证成功后就进行权限和菜单的初始化,生成该用户的菜单和权限数据。 二、生成菜单、权限信息 通过将用户名传入Initpermission类中进行处理 from rbac import models from django.conf import settin
阅读全文
摘要:一、表结构设计 二、表结构说明 上述有5张表,但因为用户表与角色表、角色表与权限表都是多对多的关系,故而会多生成2张表。 1、菜单表(Menu) 是主页右侧的菜单,它的下面是所有的get方式的权限url 2、请求方式表(Action) 是所有请求url的请求方式,在页面上的表现就是增加、修改、删除这
阅读全文
摘要:一般情况下,进入到web网站主页都需要进行token或者其它验证,不能在没有登录的情况下可以查看主页的内容,在用户输入用户名密码后,进行校验成功,后台会返回一个token,用于用于下次访问主页或其它页面进行用户认证,一旦认证成功就可以访问了。 1、用户获取token 用户向后台API发送用户名和密码
阅读全文
摘要:一、认证源码流程 1、认证准备工作 在rest framework之APIView中提到过rest framework的视图不仅有CBV分发的特性,而且又对request进行了封装,其中封装的就有认证功能。在APIView类下的dispatch方法中: 在dispatch方法中: 是重构reques
阅读全文
摘要:一、rest framework配置 1、安装rest framework 在django环境中安装rest-framework框架: 2、在django项目中进行配置 二、rest_framework下的APIView rest framework中的APIView是在CBV的基础上进行扩展的,C
阅读全文


浙公网安备 33010602011771号