简介Django中内置的一些中间件

针对这个话题,我给您提供以下完整的攻略:

简介Django中内置的一些中间件

Django是一个提供Web应用程序开发框架的Python框架。它提供了许多功能和工具,其中一项很重要的功能是中间件。Django中的中间件是可插拔的组件,可以自定义请求和响应的处理方法。在Django中,许多内置的中间件可用于快速实现常见的功能,同时也可作为参考使用自定义中间件的方式。

内置中间件

以下是Django内置的中间件列表:

  • AuthenticationMiddleware:提供了用户认证功能和对已认证用户状态的存储和维护。
  • SessionMiddleware:提供对HTTP会话的支持,通过使用浏览器cookie来维护状态。
  • MessageMiddleware:提供向用户发送消息的机制,如错误消息或成功消息。
  • CommonMiddleware:提供了许多处理请求的基础模块,如静态文件请求的处理、gzip压缩、URL重定向等。
  • CsrfViewMiddleware:提供了跨站请求伪造(CSRF)保护功能,可阻止恶意请求。
  • Http404Middleware:提供了一个默认的404页面和找不到页面的处理方法。

示例说明

AuthenticationMiddleware

AuthenticationMiddleware是Django中内置的中间件之一,提供用户认证功能和对已认证用户状态的存储和维护。

具体来说,该中间件在每个请求处理前,检查用户是否已经登录。如果已经登录,它会将用户的数据添加到请求中的user对象中。

一下是AuthenticationMiddleware的示例代码:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

SessionMiddleware

SessionMiddleware提供对HTTP会话的支持,利用浏览器cookie在每个请求之间维护会话状态。

具体来说,该中间件在每个请求前,检查用户浏览器的cookie中是否包含session id。如果没有,则在服务器上创建一个新的会话ID,并将其存储在响应的Cookie中。

以下是SessionMiddleware的示例代码:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

以上是Django中内置的两个中间件示例,你可以在自己的项目中参考使用或根据需求进行自定义中间件的开发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简介Django中内置的一些中间件 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Python Django中间件详细介绍

    下面就是“Python Django中间件详细介绍”的完整攻略,包含两条示例说明: 介绍 Django中间件(Middleware)是一个可以介入Django请求/响应处理过程的实现机制。通过中间件,用户可以干预Django的request/response处理流程,修改request/response响应的方式和内容。 Django中间件可以方便的实现以下…

    Django 2023年5月16日
    00
  • django基础之day08,利用bulk_create 批量插入成千上万条数据

    bulk_create批量插入数据 models.py文件 class Book(models.Model): title=models.CharField(max_length=32) urls.py文件 from app01 import views urlpatterns = [ url(r’^admin/’, admin.site.urls), #首…

    Django 2023年4月12日
    00
  • Django界面“Django Administrator”修改为自定义

    1、引用django框架的项目,当你需要修改Django administration这个标题的时候, 去admin.py项目修改,加一句话: admin.site.site_header = “xxx平台” 其中site_header是django三方包里面定义的变量,在base_site.html这个里面能看到, 定义的变量名,需要你在admin.py里…

    Django 2023年4月11日
    00
  • Python Django CBV下的通用视图函数

    ListView TemplateView DetailView   之前的代码实例基本上都是基于FBV的模式来撰写的,好处么,当然就是简单粗暴。。正如: def index(request): return HttpResponse(‘hello world’) 上面的写法,基本接触不到视图函数里面的通用视图。只是在介绍CBV的时候稍微介绍了下引用,大概用…

    Django 2023年4月10日
    00
  • Django笔记十六之aggregate聚合操作

    本文首发于微信公众号:Hunter后端原文链接:Django笔记十六之aggregate聚合操作 这一篇笔记介绍一下关于聚合的操作,aggregate。 常用的聚合操作比如有平均数,总数,最大值,最小值等等 用到的 model 如下 class Author(models.Model): name = models.CharField(max_length=…

    2023年4月10日
    00
  • Django之SQL注入漏洞复现(CVE-2021-35042)

    前言 SQL注入的原理是对web请求,表单或域名等提交查询的字符串没有进行安全检测过滤,攻击者可以拼接执行恶意SQL命令,导致用户数据泄露 漏洞原理 Django 组件存在 SQL 注入漏洞,该漏洞是由于对 QuerySet.order_by()中用户提供数据的过滤不足,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行 SQL 注入攻击,最终造成服务器敏…

    2023年4月10日
    00
  • Pyinstaller打包django

    偶有特殊要求可能需要将django程序打包成exe可执行文件,方便在电脑直接点击运行。这里用的是打包python代码的常用库Pyinstaller. 虽然用Pyinstaller支持打包Django,但也存在一些坑,在此记录一下。 环境: Python 3.6 Django 2.0 Pyinstaller 3.4 打包开始之前,先确定写的django程序能否…

    Django 2023年4月11日
    00
  • Django框架详解之views

    一个简单的视图   一个视图函数,是一个简单的python函数,它接受web请求并且返回web响应。无论视图本身包含什么逻辑,都要返回响应。为了将代码放在某处,约定是将视图放置在项目或应用程序目录中的名为views的文件中 from django.shortcuts import HttpResponse def my_hello(request): ret…

    Django 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部