随笔分类 - python-web框架 / Django
摘要:jwt原理以及使用 cookie和session Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服
阅读全文
摘要:API接口文档 接口文档的意义:减少前后端代码的交流成本。 后端提供接口,所以也应该提供接口的请求方式、响应格式等描述文档,让前端可以方便的使用这些接口。 如何编写接口文档 接口文档编写方案 word,md文件手动编写 使用第三方平台,编写接口文档,市面上有很多这种平台,一般是收费的 公司自己使用第
阅读全文
摘要:drf之请求和响应 drf请求 在APIView视图类中,会在执行as_view方法时重新包装request,而用到的方法时通过rest_frame.request.Request类产生了一个新的request对象。 这段代码如下: return Request( request, parsers=
阅读全文
摘要:权限模型以及常见实现方式 三种权限模型简介 ACL模型 该模型基于用户的权限管理模型(ACL, Access Control List) 基于用户的概念就是说直接对用户进行权限分配管理,好处是模型构建简单,只需要给用户授予或者取消对应权限即可。但是相对的,如果用户数量庞大的情况下,这套模型就很不实用
阅读全文
摘要:drf三大认证源码分析及异常捕获 三大认证分析源头:drf的APIView中,重写了dispatch方法,在分发按请求方式分发之前,进行了运行了initial函数,其中就有以下代码,并且整体的将initial和视图分发放在同一个try的子代码中进行异常捕获,那么当认证不通过时,只要抛出异常,后续的视
阅读全文
摘要:drf之三大认证、过滤、排序、分页组件 本文所介绍的组件,都有着很相似的配置方式,继承组件类,类体中配置参数,视图类中配置参数添加对应的组件类或者全局配置,我们就可以方便的使用drf提供的组件了。这些组件也足够常用。 认证组件 对于接口而言,有些接口应该是需要登录认证后才能访问,我们需要先写一个登录
阅读全文
摘要:drf视图类 视图基类、视图扩展类、视图子类、视图集 两个视图基类 APIView 这个视图类在前文已经介绍过了,web常见5个接口--APIView的最后有提到: APIView也是继承了django的原生视图类View,而APIView做了更多的工作来方便我们编写视图函数。以下为查询接口的一段代
阅读全文
摘要:drf之序列化组件 模型类准备 class Book(models.Model): name = models.CharField(max_length=32) price = models.CharField(max_length=32) publisher = models.CharField(
阅读全文
摘要:BBS项目练习一 项目启动 BBS是电子报系统,我们将参考博客园界面来进行需求分析和项目搭建。 需求分析 表层功能需求(大致) 博客园,有一个首页,首页用于展示文章,提供一些其他站内链接,可能还包括广告展示等。 用户可以注册、登录、修改密码、注销登录、修改头像等 用户可以申请个人站点,申请后可以添加
阅读全文
摘要:auth认证模块 auth认证前瞻 django自带一个admin路由,但是需要我们提供管理员账号和密码。 如果想要使用admin后台管理,需要先创建表,然后创建管理员账号。 不用手写模型表,django直接执行两条迁移指令后就会直接产生相关的表,可以理解为django为我们默认编写了很多模型表,其
阅读全文
摘要:CSRF校验及CBV加装装饰器 csrf跨站请求伪造 我们的网站在提交表单时,是通过post请求朝一个网站提交信息,这个网站的服务端可以通过request.POST拿到的目标数据,那么就存在这么一种可能,如果有投机分子仿造了一个一模一样的前端钓鱼网站,且表单也通过POST标签提交给服务端,但是将表单
阅读全文
摘要:cookie和session cookie和session简介 HTTP协议中规定了浏览器不会保存客户端的状态,即无状态的连接特性。这是因为早期的web不需要什么用户注册,看看新闻的功能,所有用户都给一样的界面,不需要什么状态保存。 但随着互联网的发展,我们很多web框架的应用需要保存用户的状态,如
阅读全文
摘要:django之中间件(middleware) 在之前一篇博文中,有关django的请求流程中,我们关于中间件这一层并没有详细的介绍,在这张图中,我们将中间层定义为django网关层和路由层的过渡层,那么具体会中间件会做什么事呢。 django默认中间件 在配置文件中,有一个MIDDLEWARE列表,
阅读全文
摘要:form组件 在我们日常填写注册信息或者报名信息时,所访问的网页,在输入信息有错误时就显示一些后端传入的提示。 我们当然可以通过ajax绑定事件来从后端取一些提示,但是表单是个整体,如果每个输入框都需要我们完整的写一轮这么一套逻辑,这就太麻烦了,所以针对表单标签,django提供了form组件,帮助
阅读全文
摘要:Ajax Ajax的简介及用法 Ajax是指异步JS和XML,使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。 Ajax有很多版本,这里介绍的是jQuery版本的: // 基本语法 $.ajax({ url:'', //
阅读全文
摘要:django之模型层(models) 模型层搭建 模型层连接数据库 django默认连接sqlite3,但是这个数据库对时间字段不敏感,所以一般还是选择别的数据库测试。 一般是选择常见的数据库mysql去连接,而这是我们就需要更改一些设置: # 修改配置文件 DATABASES = { 'defau
阅读全文
摘要:django之模板层(templates) 模板语法简介 模板语法是由后端处理的,我们一般使用render函数处理(视图层的函数,最终将处理好的html作HttpResponse返回出去)。 模板层基本涉及三种形式的语法: {{}}:主要与数据值相关 {%%}:主要与逻辑值相关 {##}:模板语法注
阅读全文
摘要:django之视图层 视图函数结构 视图函数的参数与返回值 每一个用来处理请求的视图函数,默认都需要一个request形参来接收request对象。 每一个用来处理请求的视图函数必须返回一个HttpResponse对象,包括我们三个响应函数: HttpResponse(一些数据) def func1
阅读全文
摘要:django之路由层 路由层,主要是路由地址与视图函数的映射关系,如果将网站比作一本书,那么路由就相当于这本书的目录。 路由匹配 在目前的主流版本2.x及以上版本中,我们默认采取path函数记录映射关系, urlpatterns = [ path('admin/', admin.site.urls)
阅读全文
摘要:django基础操作简述 本文是对django整体架构功能的简单叙述,重在能够通过django架构简单的实现前端网页到后端数据库整体流程的实现,也是对django配置的概念补充。 静态文件 static文件夹 存一些css,js,img,第三方模块等,也可以再分文件夹 如:我们可以要引入本地的boo
阅读全文