django框架基础-django的中间件-长期维护-20200113

##################    中间件      #######################

##################    中间件      #######################

##################    中间件      #######################

##################    中间件      #######################

##################    中间件      #######################

python-django框架-中间件

1,中间件

先说几个需求,

  1,url的白名单, url=[ "XX"]

    这个里面是一个用户可以访问的url,这就是一个权限的概念了,  

  2,登陆之后才能访问某些url,  之前使用的是装饰器,一个网站可能有一两千的url,这样加装饰器就不太好,所以使用中间件是非常不错的,

什么是中间件?

是一个轻量,低级别的插件系统,可以在全局范围内改变django的输入和输出,每一个中间件都负责做一些特定的功能

也就是每一个请求都会走这个中间件,

注意:

因为改变的是全局,所以要谨慎使用,使用不当会影响性能,

#######################################################

浏览器到django框架的时候,先经过一个wsgi,这个wsgi就是按照HTTP的协议的规则解析请求,

然后到url.py中,找对应关系,

然后去views.py中,找到对应的函数,这个函数需要模板,需要数据,

然后可能去读一个模板templates,html页面,

然后使用orm取数据,

然后返回给浏览器,也需要经过wsgi,这个还需要按照HTTP的协议,进行解析,然后输出,

----------

中间件就是经过wsgi之后就要经过中间件,这就是在全局影响django的请求和响应,

所以中间件多了不好,每次都经过,性能就会受到影响,

所以前面权限的例子,就是可以使用中间件的,这好像是一个过滤的功能一样,

  比如验证是否登陆,如果没有登陆就提示登陆,登陆了就可以查看,这个也可以使用中间件

所以全网站级别的功能,就需要使用中间件,

------------------------

这个是一个比较进阶的东西,你不知道不影响你写什么东西,

---------------------

定义:在wsgi之后,在url.py之前,在全局,操作django请求和响应的模块,

###############################################

我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,MIDDLEWARE配置项。

后面再看,这个讲的也只是使用中间件做了一个登陆的验证问题,之前都是使用装饰器来做的验证,

原文地址:https://www.cnblogs.com/andy0816/p/12191281.html

时间: 2024-10-10 04:23:33

django框架基础-django的中间件-长期维护-20200113的相关文章

django框架基础-django redis-长期维护-20191220

###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ##############

django框架基础-django的认证系统-长期维护-20200114

##################    为什么使用中间件?      ####################### ##################    为什么使用中间件?      ####################### ##################    为什么使用中间件?      ####################### ##################    为什么使用中间件?      ####################### ######

Django框架基础(一)

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1 安装 1 pip3 install django 2 # 创建Django程序 3 django-admin startproject mysite 4 # 进入程序目录 5 cd mysite 6 # 启动socket服务端,等待用户发送请求 7 python manage.py runse

Django框架基础

Django基础-Lesson1 web框架概念 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.  socket模拟服务端 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回. 如果要动态生成HTML,就需要把上述步骤自己来实现.不过,接受HTTP

Django框架基础学习

Django安装 python下载地址 http://www.python.org/download/releases/3.3.4/ Django的下载地址:https://www.djangoproject.com/download/ 1)安装(进到解压目录) python setup.py install 2.配置环境变量(PATH) C:/Python27/Lib/site-packages/django;C:/Python27/Scripts; 3.检查是否安装成功,可以在dos下进入D

Django框架基础之Form组件

服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入的信息                  -- 可以生成html标签应用: class A_Form(Form): 字段=fields.字段类型(默认参数: required=True, widget=widgets.插件(attrs={})) 常用字段:Charfield,RegexField,I

Django框架基础(二)

MODELS 1 对数据库起效的字段设置: 2 数据类型:CharField 3 IntegerField 4 FloatField 5 DecimalField(max_digits=30,decimal_places=10) 6 DateTimeField 7 8 9 字段参数:null=True default='' unique=True db_index=True premary_key 10 class Meta: 11 unique_together=( 12 ('email','

Django框架(一)-Django初识

Django初识 一.Web框架本质-自己实现Web框架 1.所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端 import socket sk = socket.socket() sk.bind(('127.0.0.1', 8888)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(8192) conn.send(b'OK') conn.close() 2.增加HTT

django框架基础-ORM操作-长期维护-20191213

###############    ORM介绍和使用mysql的基本配置    ################ # ORM简介 # O是object,对象 # R是relation,关系,这是关系数据库中的表 # M是mapping,映射 # 在django里面主要是在models.py文件里面设计模型类, ########################### # ORM另一个作用:根据设计的类生成数据库中的表 # django中使用ORM创建表 # 这种可以使用写Python语句,然后自