Using the URLconf defined in config.urls, Django tried these URL patterns, in this order:…
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐. 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 二 中间件介绍…
Django请求流程图 请求到达中间件之后,先按照正序执行每个注册中间件的process_reques方法,process_request方法返回的值是None,就依次执行,如果返回的值是HttpResponse对象,不再执行后面的process_request方法,而是执行当前对应中间件的process_response方法,将HttpResponse对象返回给浏览器.也就是说:如果MIDDLEWARE中注册了6个中间件,执行过程中,第3个中间件返回了一个HttpResponse对象,那么第4…
一.Django中的中间件 Django中间件定义: Middleware is a framework of hooks into Django's request/response processing. It's a light, low-level "plugin" system for globally altering Django's input or output. 应用场景: 如果需要修改请求,例如被传送到view中的HttpRequest对象. 或者你想修改view…
一.Django请求生命周期 在学习中间件之前,先了解一下Django的请求生命周期,如下图: 1)client代表浏览器,浏览器内部为我们封装了socket,Django的WSGI模块也封装了socket:分析: 2)当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端,请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中: 3)请求到达Django服务器后,首先,WSGI根据http请求协议进行解包并将请求信息封装到HttpRe…
1.Model 一对多 补充 models如下: class UserType(models.Model): caption = models.CharField(max_length=16) class UserInfo(models.Model): username = models.CharField(max_length=32) pwd = models.CharField(max_length=32) user_type = models.ForeignKey('UserType')…
1.定义 一个用来处理Django的请求和响应的框架级别的钩子(函数),相对比较轻量级,并且在全局上改变django的输入与输出(使用需谨慎,否则影响性能) 直白的说中间件就是帮助我们在视图函数执行之前和执行之后做一些额外操作 2.用处 用户登录 日志记录 权限管理 请求验证(post) 一般对所有请求做批量处理的时候用中间件,单独对某几个函数处理直接使用装饰器 3.用法说明 我们使用django一直就在使用中间件,打开django的setting文件,当中的MIDDLEWARE配置项 MIDD…
静态文件 静态文件的使用 在 网页使用的css文件,js文件和图片等叫做静态文件.1)在项目下新建静态文件夹 static. 2) 配置静态文件所在的物理目录.Settings.py STATIC_URL设置访问静态文件对应的url. STATICFILES_DIRS设置静态文件所在的物理目录. 动态生成静态文件的路径 即不管你的 STATIC_URL 怎么变,也对页面上的静态文件url获取没影响 settings.py # 设置访问静态文件的url地址 # http://127.0.0.1:8…
目录 1.cookie与session 1.cookie 2.session 2.中间件 1.中间件作用 2.用户可以自定义的五个方法 3.自定义中间件 1.cookie与session 1.cookie 1.什么是cookie 因为HTTP协议是无状态的,所以为了保存客户端的用户状态,在客户端就是用cookie来保存用户的状态 注意:cookie是保存在客户端的校验 2.cookie的特性 是保存在可以断浏览器上的键值对 cookie的值可以通过自己来设置,也可以通过服务端来设置 浏览器有权禁…
一.上下文处理器 上下文处理器是可以返回一些数据,在全局模板中都可以使用.比如登录后的用户信息,在很多页面中都需要使用,那么我们可以放在上下文处理器中,就没有必要在每个视图函数中都返回这个对象. 在settings.TEMPLATES.OPTIONS.context_processors中,有许多内置的上下文处理器.这些上下文处理器的作用如下: django.template.context_processors.debug:增加一个debug和sql_queries变量.在模板中可以通过他来查…