Django 12 中间件.上下文处理器和admin后台 一.中间件 #Django中间件 (Middleware) # 一个轻量级.底层的“插件”系统,可以介入Django的请求和响应处理过程,修改Django的输入和输出 中间件的执行顺序 #请求以自上而下的顺序通过所有的层,view函数处理过后,响应以自下而上的顺序通过所有的层,期间经过的各个中间件都会对请求和响应进行处理 中间件的结构 #中间件中可以定义5个方法,分别是: #执行视图之前被调用,在每个请求上调用,返回None或HttpRe…
请求与响应篇 一.HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象.视图函数的第一个参数(request)是HttpRequest对象在django.http模块中定义了HttpRequest对象的API 所谓的API,在django中就是属性.方法. (一).HttpRequest对象的属性及方法 属性: path:一个字符串,表示请求的页面的完整路径,不包含域名 method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'…
上下文处理器(context processors)上下文处理器是可以返回一些数据,在全局模板中都可以使用.比如登录后的用户信息,在很多页面中都需要使用,那么我们可以放在上下文处理器中,就没有必要在每个视图函数中都返回这个对象Django中的Context Processor主要是应用于模板,完成页面的绘制的一些处理,也就是所说的页面渲染 一,Django内置上下文处理器 创建项目时系统自动生成的上下文处理器 TEMPLATES = [ { 'BACKEND': 'django.template…
Django 中间件 中间件介绍 中间件的第一个例子 中间件的第二个例子 上下文处理器 admin后台管理   中间件 Django中间件(Middleware)是一个轻量级.底层的“插件”系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. django 中的中间件(middleware) 在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法.在django项目的settings模块中,有一个 MI…
Django中间件(Middleware) 是一个轻量级.底层的“插件”系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件. 中间件的结构: 中间件中可以定义5个方法,分…
一.上下文管理器 在views中重复使用的代码,可以在上下文管理器中实现 上下文管理器的处理流程如下: 1.先走完views里面的代码,将结果返回给前端 2.然后再将上下文的结果返回给前端 3.上下文只有在返回的是html的时候,才会走上下文处理器 1.1 上下文content_process.py代码 比如写一个博客,文章分类在很多方法都要查询文章分类,每次都查数据库,代码冗余很多,就可以考虑把查文章分类的方法,写到上下文管理器中 1 from . import models 2 3 def…
1.定义一个方法 2.在django里面的settings.py里面修改配置文件 3.最后在模板里面调用 操做步骤如下: 这是在settings.py里面配置的文件   在模板里面调用上下文处理器…
Django 上下文处理器 模板要在上下文中渲染. 上下文是django.template.Context的实例.django.template.RequestContext是Django提供的一个子类. django.template.RequestContext默认为模板上下文添加很多变量.使用render()快捷方式时,如果没有明确传入其他上下文,默认使用RequesetContext. django.template.Context的实例 from django.template imp…
中间件 在项目主目录下的配置文件 在项目主目录下创建文件 写个自定义异常处理 方法1 要让其生效,要在主目录下,的中间件中进行注册 主目录下.该文件名.类名 在进入视图函数之前进行判断,  给 request 添加属性 方法2 同样要在配置文件中进行注册 测试该中间件是否生效,在视图函数中打印下, 上下文处理器 在主目录的配置文件中 在上下文处理器中传进来的,可以不经过视图,直接在前台模板中调用 , 如:在 html 文件中直接调用 request 就呆以在页面上显示: 自定义一个上下文处理器,…
上下文处理器 上下文处理器可以返回一些数据,在全局模板中都可以使用,比如登录后的用户数据,在很多页面中都需要使用,那么我们就可以方在上下文处理器中,就没有必要在每个视图中返回这个对象了. 在settings.py.TEMPLATES.OPTIONS.context_processors中,有许多内置的上下文处理器,这些上下文处理器的作用如下: (1)django.template.context_processors.debug:增加一个debug和sql_queries变量,在模板中可以通过他…