随笔分类 - Django
摘要:# filters.py from django_filters import FilterSet class CourseFilterSet(FilterSet): # 课程的价格范围要大于等于min_price,小于等于max_price min_price = filters.NumberFi
阅读全文
posted @ 2020-07-28 17:24
the3times
摘要:缓存穿透 所有的请求都不在缓存中,直接穿过缓存访问数据库,但数据库也没有这个数据 ### 缓存穿透 #描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 #解决方案: 1 接
阅读全文
posted @ 2020-07-25 13:35
the3times
摘要:django中使用redis有两种方式: 通过redis模块直接操作redis数据库 通过django-redis模块使用django的缓存cache【下文介绍内容】 下载安装 pip install django-redis 配置缓存redis 将缓存存储位置配置到redis中:settings.
阅读全文
posted @ 2020-07-25 13:13
the3times
摘要:drf也可以使用反向解析,使用的方式和django的路由反向解析类似。 使用步骤: url中通过参数name配置视图别名 在视图函数中使用drf的reverse()方法,反向解析出需要的url # urls.py urlpatterns = [ path('mytest/', views.Test.
阅读全文
posted @ 2020-07-20 18:46
the3times
摘要:写在前面 # 同源策略是浏览器层面的上的限制,限制不同源请求的响应无法渲染到显示器上。 底层其实请求已经发出取拿回来响应结果了,只是在回来时遇到浏览器的同源策略给半路拦下来了。 # CORS是跨域资源共享,即服务端的接口允许不同源的请求访问该接口 # 同源指的是:请求的域名、端口、协议三者和服务端的
阅读全文
posted @ 2020-07-19 13:21
the3times
摘要:扩展auth-user表的目的是使用auth-user表的已经存在的字段,又需要新添额外的字段。 正常情况下在项目初期,数据库中没有任何表的情况下,通过继承AbstractUser,扩展auth-user表。 如果项目初期没有扩展auth-user表,后期再去扩展,就会遇到问题。 解决的办法如下:
阅读全文
posted @ 2020-07-19 12:55
the3times
摘要:xadmin xadmin是django后台管理admin的升级,是一个第三方开源项目,在界面美观和操作上有一定的提升。 安装 # 在线安装 pip install xadmin # 离线安装, github官网选择对应版本,下载安装包到本地, https://github.com/sshwsfc/
阅读全文
posted @ 2020-07-19 12:12
the3times
摘要:修改目录结构 django项目中目录结构在实际项目中可能不合适,尤其是使用drf时,需要修改项目的目录结构。 目录结构修改后,需要一定的配置,否则整个项目是跑不起来的。修改后的目录结构如下: 项目目录结构修改后,需要的配置如下 启动文件修改 启动文件有两个:分别是wsgi.py【线上部署】和mana
阅读全文
posted @ 2020-07-19 10:51
the3times
摘要:自动生成接口文档:三方插件+注释 # 1 安装:pip install coreapi # 2 在路由中配置 from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', in
阅读全文
posted @ 2020-07-19 10:14
the3times
摘要:drf提供了三个内置分页器,根据前端需求选择使用。 全局配置 在配置文件中设置全局的分页方式,如: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PA
阅读全文
posted @ 2020-07-17 00:07
the3times
摘要:前后端混合开发使用缓存 前后端混合开发模式下,缓存 对于大量的静态页面,可以使用缓存的方式将平台页面缓存起来,下次再被访问时可以直接从缓存中那,不用在频繁的操作数据库,较少服务器压力提供服务并发量。 缓存的位置:可以缓存到数据库、文件、redis缓存数据库等,参考博客 缓存的粒度 # 全站缓存,中间
阅读全文
posted @ 2020-07-16 09:48
the3times
摘要:jwt介绍 pass待补充.... jwt本质使用流程 第一步,用户提交用户名和密码给服务端,如果登录成功,使用jwt创建一个token,并给用户返回 eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6InpjY
阅读全文
posted @ 2020-07-16 00:57
the3times
摘要:提示:模型表models.py在文末 单查&群查 简单情况下,查询一条数据和查询多条数据是有两条URL(带pk的和不带pk的),对应两个APIView视图类。 复杂一点,可以将两个APIView视图类合并在一起,两条URL对应一个统一的URL。在视图类中通过判断pk值是否存在来选择单查还是群查。 其
阅读全文
posted @ 2020-07-14 22:15
the3times
摘要:过滤&排序 过滤排序的使用一定要基于继承了GenericAPIView和调用了GenericAPIView.filter_queryset方法的类。 安装三方组件 # 安装 pip3 install django-filter # 注册 在项目配置文件中注册django-filter这个app(不注
阅读全文
posted @ 2020-07-11 13:27
the3times
摘要:认证的使用 # 使用流程 1 写一个类,继承BaseAuthentication,重写authenticate,写认证的逻辑; 2 认证通过,返回两个值,一个值最终给了Requet对象的user; 3 认证失败,抛异常:APIException或者AuthenticationFailed # 使用范
阅读全文
posted @ 2020-07-09 22:18
the3times
摘要:路由 # 继承了ViewSetMixin和GenericAPIView和类可以使用drf提供了路由系统,自动生成url, # 也可以说继承了视图集GenericViewSet的子类都可以使用路由系统 # 需要注意,此时默认通过actions分配的请求方法是五个视图扩展类的方法 # 所以简便使用路由系
阅读全文
posted @ 2020-07-09 22:13
the3times
摘要:请求对象Request from rest_framework.request import Request # 该Request没有继承django原生的HttpRequest REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是RES
阅读全文
posted @ 2020-07-08 23:24
the3times
摘要:APIView # APIView继承自django原生的View,它在View的基础上做了两件事: - 使用csrf_exempt()去除了所有请求的csrf认证 - 重写了View的dispatch方法,用drf的Request对象替换原生的当前请求request对象 - 做了三大认证:认证、权
阅读全文
posted @ 2020-07-08 23:23
the3times
摘要:序列化组件介绍 # 序列化组件的作用:序列化;反序列化(包括数据校验) 1. 序列化, 序列化器会把模型对象转换成字典, 经过response以后变成json字符串,传给前端 2. 反序列化, 把客户端发送过来的数据, 经过request以后变成字典, 序列化器可以把字典转成模型 3. 反序列化,
阅读全文
posted @ 2020-07-08 00:08
the3times
摘要:web开发模式 # 前后端混合开发(前后端不分离):返回的是html的内容,需要写模板 # 前后端分离:只专注于写后端接口,返回json,xml格式数据 # 前后端分离需要中间媒介:api接口 API接口 # 通过网络,规定了前后台信息交互规则的url链接, # 就是前后端交流的媒介,双方协议好传输
阅读全文
posted @ 2020-07-06 22:16
the3times

浙公网安备 33010602011771号