day64 django中间件的复习使用

2023-11-29 08:52

本文主要是介绍day64 django中间件的复习使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

django中间件

'''
django中间件是django的门户
1.请求来的时候需要先经过中间件才能达到真正的django后端
2.响应走的时候也需要经过中间件
​
djangp自带七个中间件
'''
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware',------session与之切切相关'django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]
​
# django支持程序员自定义中间件并且暴露给程序员五个可以自定义的方法1.必须要掌握的process_requestprocess_response2.了解即可process_viewprocess_template_responseprocess_exception

img

如何自定义中间件

'''
1.在项目名或者应用名下创建一个任意名称的文件夹
2.在该文件内创建一个任意名称的py文件
3.在该py文件内需要数学类(这个类必须继承MiddlewareMixin)-然后在这个类里面就可以自定义五个方法(这五个方法用几个写几个,不需要全写)
4.需要将类的路径以字符串的形式注册到配置文件中才能生效
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware',------session与之切切相关'django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','你的自定义中间件'
]
'''1.必须要掌握的# process_request ---- 请求来的时候1.请求来的时候需要经过每一个中间件里面的process_request方法-结果的顺序是按照配置文件中注册的文件顺序从上到下依次执行2.如果中间件里面没有定义该方法,那么就直接跳过执行下一个中间件3.如果该方法返回了HttpResponse对象那么请求不再继续往后执行,而是直接原路返回-功能类似于校验失败,不允许访问总结:process_request方法就是用来做全局相关的所有限制功能# process_response ---- 就是django后端返回给浏览器的内容1.响应走的时候需要经过每一个中间件里面的process_response方法-该方法有两个额外的参数request和response2.该方法必须返回一个HttpResponse对象1.默认返回的就是response2.你也可以自定义返回3.顺序是按照配置文件中注册了的中间件从下往上的顺序# 问:如果在第一个process_request方法就已经返回了HttpResponse对象,那么响应走的时候是经过所有的中间件里面的process_response还是有其他的情况答:会直接走同级别的process_response方法返回,接下来的中间件就不执行了2.了解即可# process_view路由匹配成功之后执行视图函数之前,会自动执行中间件里面的该方法顺序是配置文件中的注册的中间件从上往下依次执行# process_template_response返回的HttpResponse对象有render属性时候才会触发顺序是按照配置文件中注册的中间件从下往上依次经过# process_exception当视图函数中出现异常的情况下触发顺序也是从下往上的顺序
​

1701162224518

---------------------------------------------------------------------------------------------->>>注意看request和response的执行顺序

csrf跨站请求伪造

'''
与钓鱼网站有关我搭建一个跟正规网站一模一样的界面用户不小心进入到了我们的网站,用户给某人打钱打钱的操作的确是提交给了正规网站,用户的钱也确确实实减少了但是打钱的目标账户被改变了,变成了别的用户内部本质:我们在钓鱼网站的页面,针对对方账户只给用户提供一个没有name属性的普通input框然后我们在内部隐藏一个已经写好的name和value的input框如何规避:csrf跨站伪造校验网站在给用户返回一个具有提交数据功能的页面的时候会给这个页面加一个唯一标识当这个页面超后端发送post请求的时候,我们后端会先校验这个唯一标识,如果唯一标识不对,就会直接拒绝(403)如果成功,就正常执行
'''

如何符合校验

# form表单如何符合校验在form表单中写入{% csrf_token %}

csrf相关装饰器

'''
1.网站整体都不校验csrf,就单单几个视图函数需要校验
2.网站整体都需要csrf校验,就单单几个试图函数不需要校验
'''
装饰器导入:from django.views.decorators.csrf import csrf_protect,csrf_exempt
csrf_protect:需要校验
csrf_exempt:不需要校验

这篇关于day64 django中间件的复习使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/432209

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插