随笔分类 - 【Django】
摘要:@[toc] 解析器 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程. 本质就是对请求体中的数据进行解析. :用于声明我给你传的是什么类型的数据 : application/x ww form urlencoded 表单数据类型 : multipart/form
阅读全文
摘要:我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来. 因为这样会给内存造成巨大的压力,很容易就会内存溢出,所以我们希望一点一点的取. 同样,展示的时候也是一样的,我们必定会对数据进行分页显示. 本文将详细讲述DRF为我们提供的三种分页方式. 全局配置 @[toc]
阅读全文
摘要:我们都听过权限,那么权限到底是做什么的呢. 我们都有博客,或者去一些论坛,一定知道管理员这个角色, 比如我们申请博客的时候,一定要向管理员申请,也就是说管理员会有一些特殊的权利,是我们没有的. ==这些对某件事情决策的范围和程度,我们叫做权限==,权限是我们在项目开发中经常用到的. 本文将详细讲述D
阅读全文
摘要:开发平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. DRF就为我们提供了一些频率限制的方法. DRF中的版本、认证、权限、频率组件的源码是一个流程,且频率组件在最后执行. @[toc] DRF频率组件原理 · DRF中的频率控制基本原理是基于访问次数和时间的,当然我们也可
阅读全文
摘要:本文详细讲述了DRF认证组件的原理以及用法. @[toc] 源码剖析 上一篇博客讲解DRF版本的时候我们都知道了,在 方法里执行了 方法来初始化我们的版本. 而在 方法里有我们的认证、权限、频率组件,如下图: 我们再点进去认证组件看看: 可以看到,我们的权限组件返回的是 ,那么这里返回的 是新的还是
阅读全文
摘要:首先,我们开发的项目会有多个版本. 其次,我们的项目版本会随着更新越来越多,我们不可能因出了新版本就不维护旧版本了. 那么,我们就需要对版本进行控制——DRF版本控制. @[toc] 源码剖析 DRF视图中的APIView返回的是View类中的view函数,然后调用 方法. 那么,我们来看看 方法都
阅读全文
摘要:在urls.py文件中按照如下步骤写,即可正确使用DRF的内置路由. DRF内部为我们生成的路由如下图:
阅读全文
摘要:前后端分离后,其交互一般都选择使用JSON数据格式,JSON是一个轻量级的数据交互格式. 因此,后端发送给前端(或前端发送给后端)的数据都要转成JSON格式,这就得需要我们把从数据库内取到的数据进行序列化. 本文将详细讲述Django项目中如何使用第三方库 进行序列化. 在命令行中输入: ,方可下载
阅读全文
摘要:请结合 "【DRF序列化】" 此文献中的数据文件及序列化文件来阅读如下代码. DRF视图为我们提供了非常简便的方法——内置了增删改查等一系列的操作. 我们只需在url中指定对应的方法,视图继承内置方法的类,即可实现两三行代码搞定一个请求. @[toc] 我们先看看仿照内置方法实现的 APIView视
阅读全文
摘要:如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 第二步 第三步 第四步 启动Django并访问admin页面, 开始上传图片 第五步 查看并访问上传的图片 可见,上传后,我们的项目根目录下生成了"媒体库"文件
阅读全文
摘要:@[toc] CORS 即 Cross Origin Resource Sharing 跨域资源共享. 跨域请求分两种:简单请求、复杂请求. 简单请求 简单请求必须满足下述条件. HTTP方法为这三种方法之一: 、`GET POST` · HTTP头消息不超出以下字段: 、`Accept Langu
阅读全文
摘要:Django中提供了"信号调度",用于在框架执行操作时解耦。 通俗来讲,就是在某些动作发生时,信号允许特定的发送者去提醒一些接受者。 Django内置信号: 对于Django内置的信号,仅需注册指定信号,当程序执行相应操作时,会自动触发注册的函数。 注册信号,将如下内容写入与project同名的文件
阅读全文
摘要:@[toc] 好,现在我们有这样一个需求,我们的商城里有很多的商品,然而节日要来了,我们要搞活动. 那么,我们就要设计优惠券,优惠券都有什么类型呢?满减的、折扣的、立减的、等等等... 我们对应着活动类型,对某类商品设计优惠卷,比如: 家电是一类商品、食物是一类商品,那么我们就可以设计家电折扣优惠券
阅读全文
摘要:Django中序列化主要应用于将数据库中检索的数据返回给客户端用户,特别是Ajax请求一般返回为Json格式。 1、 可见,此方法返回的数据中包含数据表名称:"model": "blog.user", 并且,此方法不能很好的序列化外键关系,序列化外键得到的是id. 所以,==此方法不安全,不推荐使用
阅读全文
摘要:@[toc] 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,这还真是个麻烦的事情呢。 Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统 auth,它默认使用 au
阅读全文
摘要:由于Django是动态网站,所以每次请求都会去数据库中进行响应的操作。 当程序访问量大时,耗时必然会更加明显,最简单的解决方案就是使用缓存。 Django中的缓存: ==即将某一个view的返回值保存至内存或memcache中,默认保存5分钟。在此时间内如果有人来访问此view,则不会去执行此vie
阅读全文
摘要:@[toc] Form组件介绍 在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应
阅读全文
摘要:@[toc] 补充Django内置的两个装饰器方法: 使用ensure_csrf_cookie()装饰器可以强制设置csrf到Cookie: DJango内置的序列化方法: JSON 什么是JSON? JSON指的是JavaScript对象表示法(JavaScript Object Notation
阅读全文
摘要:@[toc] 我们可以给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面等等。我们通过给几个特定视图函数加装饰器实现了这个需求,但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 因此,我们可以使用更适宜的方式来实现类似给所有请求都做相同操作的功能了——中间
阅读全文
摘要:@[toc] 介绍 Cookie虽然在一定程度上解决了"保持状态"的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且它保存在服务器,有较高的安全性。这就是Session. 问题来了,基于HTTP
阅读全文

浙公网安备 33010602011771号