drf(3)】的更多相关文章

我觉得在有些应用场景下,这个操作是有用的,因为可以减少一个AJAX的请求,以增加性能. 当然,是二次请求,还是一次传输.这即要考虑用户体验,还要兼顾服务器性能. 一切是有条件的平衡吧.就算是一次传输,字段少的可以全部传,而字段多的就要自定义啦. 在以下样例里,发布单是主表,但相关的项目,组件,用户,如果默认情况下,只显示ID,很不友好. 我们可以将相关的外键名称也一并序列化啦. 重点的DRF: class UserSerializer(serializers.ModelSerializer):…
官方文档:https://www.django-rest-framework.org/api-guide/throttling/ 1.什么场景下需要限制访问频次呢? 1)防爬虫:爬虫可能会在短时间内大量的访问服务接口,增加服务器压力 2)对于需要限制访问频次的接口 2.DRF如何限速: 通过 rest_framework下面的throttling 模块实现 throttling模块主要提供了三种限速方式: 1)AnonRateThrottle 针对未登录用户的限速,通过IP地址区分用户 2)Us…
对于现在的动态网站来讲,所有的界面展示都是通过客户端请求服务端,服务端再去请求数据库,然后将请求到的数据渲染后返回给客户端.用户每次访问页面都需要去请求数据库,如果同时有多个人访问的话,对于我们的数据库的压力是相当大的. 所以我们会想,对于不是经常变更的数据,或者不需要实时更新展示的数据,我们可以将数据存放在缓存中,用户下次需要数据的时候,服务端直接从缓存中拿到数据返回给用户即可,不需要每次都去数据库查询,这样会大大降低数据库的压力,提升用户访问速度. Django提供了多种缓存方法,具体可以参…
drf自定义用户认证: 登录默认 使用django的ModelBackend,对用户名和密码进行验证.但我们平时登录网站时除了用户名也可以用邮箱或手机进行登录,这就需要我们自己扩展backend 一.settings中配置 AUTHENTICATION_BACKENDS = ( 'users.views.CustomBackend', ) users.views中新建backend,对用户名或手机进行验证 二.users/views.py # users.views.py from django…
drf-extensions 概述 drf-extensions组件内部提供了 DRF  的本地内存方式的缓存方式 本地内存方式缓存在项目重启后则会消失 官方点击 这里 安装 pip3 install drf-extensions or from github pip3 install https://github.com/chibisov/drf-extensions/archive/master.zip 导入 from rest_framework_extensions.cache.mixi…
用户登录 自定义用户登录字段处理 用户的登录时通过 手机号也可以进行登录 需要重写登录验证逻辑 from django.contrib.auth.backends import ModelBackend class CustomBackend(ModelBackend): def authenticate(self, username=None, password=None, **kwargs): try: user = User.objects.get(Q(username=username)…
一 进入虚拟环境 打开crm,输入命令 workon luffy 虚拟环境使用文档 二 安装基本类库 pip install django pip install PymySQL pip install Pillow pip install djangorestframework 三 创建django项目 进入项目根目录, django-admin startproject luffy 四 pycharm中使用luffy虚拟环境配置 在pycharm中如果要使用已经创建好的虚拟环境,则必须设置p…
一 web应用模式 前后端不分离 前后端分离 二 RESTFUL API规范 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的博士论文中. RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中. 这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据…
一.Django的序列化方法 1.为什么要用序列化组件 做前后端分离的项目,我们前后端数据交互一般都选择JSON,JSON是一个轻量级的数据交互格式.那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到的数据进行序列化. 2.表的构建 CHOICES = ((1, "python"), (2, "linux"), (3, "go")) # 书籍表 class Book(models.Model): title = models…
一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一资源接口 根据HTTP请求方式的不同对资源进行不同的操作 遵循HTTP请求方式的语义 前后端传输的叫资源的表述 前端展现的叫资源的状态 通过超链接的指引告诉用户接下来有哪些资源状态可以进入 2.restfull规范 核心思想 -- 面向资源去编程 每个url就是资源的体现 尽量用名词不要用动词 --…