网站建设是无形资产网页页面布局

news/2025/10/6 4:12:24/文章来源:
网站建设是无形资产,网页页面布局,wordpress新主题tint,互联网企业公司这一节介绍一下 Django 的中间件。 关于中间件#xff0c;官方文档的解释为#xff1a;中间件是一个嵌入 Django 系统的 request 和 response 的钩子框架#xff0c;是一个能够全局改变 Django 输入/输出的系统。 我们可以这样理解#xff0c;一个 request 请求发送到 Dj…这一节介绍一下 Django 的中间件。 关于中间件官方文档的解释为中间件是一个嵌入 Django 系统的 request 和 response 的钩子框架是一个能够全局改变 Django 输入/输出的系统。 我们可以这样理解一个 request 请求发送到 Django 系统的过程中在经过路由和视图的处理前会先经过一层处理这个处理操作可以是日志记录可以是登录验证甚至你想在系统里定义的功能这个操作就是中间件实现的功能。 接下来我们将通过一个记录请求的 ip 的功能的介绍来介绍一下中间件的实现流程。 以下是本篇笔记目录 请求经过 Django 然后返回的流程HttpRequest 和 HttpResponse 介绍中间件的示例介绍记录访问 ip 的功能实现 1、请求经过 Django 然后返回的流程 首先前端发起一个请求这个请求经由 web 服务器转发给 Django 系统在进入 Django 系统后会先经过一系列的中间件的功能处理。 这个中间件会在 settings.py 里定义Django 系统默认自带的中间件列表如下 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, ]这些中间件我们也可以根据自己的需求自己定义比如新加一个登录权限或者日志记录或者对输入的参数进行格式化处理也可以或者自己想要设置的其他功能也行具体怎么设置在后面介绍。 在中间件处理的流程中请求会被按照顺序从上往下处理。  这个流程过后一个 request 请求才会被进行 URL 的路径匹配如果匹配上再去找相应的 views 视图函数进行数据处理 views 处理完之后会形成一个 response返回然后再次经历这个中间件处理因为在每一层中间件中都类似于一种嵌套所以返回 response 的时候是从下往上再次处理 response 的。 中间件处理结束之后再被返回出去给到前端。 在这整个流程处理中可以说中间件是进行了两次操作一个是进入的时候处理 request一个是返回的时候处理 response。 2、HttpRequest 和 HttpResponse 介绍 我们先来看一个视图函数 def time_view(request):now datetime.datetime.now()html h1now: %s/h1abc\nabc % nowreturn HttpResponse(html)当 Django 接收到一个请求系统会创建一个 HttpRequest 对象这个对象就是上面的视图函数里的输入参数request 在对数据进行处理后系统会返回一个 HttpResponse 对象这个就是我们 return 的内容。 在一个 HttpRequest 对象里会包含请求的路径、参数、请求方式、 cookie 等一切请求过来时的数据我们可以在请求的时候根据需要存取。 在返回的 HttpResponse 中可以是一个 html 页面也可以是 json 格式的数据内容是可以自定义的只要前端可以做相应的处理。 3、中间件的示例介绍 接下来我们定义一个中间件结构大致如下 # huter/middleware.pyclass SimpleMiddleware:def __init__(self, get_response):self.get_response get_responsedef __call__(self, request):# 在请求进入视图函数前的可以执行一些操作针对 requestprint(request.path)response self.get_response(request)# 在处理完请求后可以执行一些操作针对 response# log_response_info()return response然后我们在 sttings.py 里引入这个中间件我们放到 MIDDLEWARE 列表的最下面说明这个中间件会在其他中间件处理完 request 之后再处理 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,hunter.middleware.TestMiddleware, ]在 SimpleMiddleware 这个类里call() 函数会自动调用其中有一行response self.get_response(request) 在这一行函数之前可以对请求的 request 做处理包括我们前面说的各种功能比如日志、登录验证、参数格式化等 在这一行函数之后获取了 response这个就是视图函数返回的 HttpResponse我们可以在这里对它的 response.status_code 状态码和 response.content 做处理 比如前面 time_view 函数返回的内容是一个 JsonResponse return JsonResponse({code: 0})那么在这里我们可以获取然后处理这个 HttpResponse def __call__(self, request):response self.get_response(request)content json.loads(response.content)content[msg] successresponse.content json.dumps(content)return response这里只是一个示例因为并不是所有的 HttpResponse 都是 json 格式的数据所以可能需要加一个 try except 做下处理 还有一个功能是我之前做过的就是在 headers 中加一个特定的字符串表示是我们系统专有的用于前端判断这个很简单就是在 response 的 headers 参数中加一个键值对 response.headers[system] hunter以上就是一个最简单的中间件的处理方式。 process_view 除了 call 函数以外还有一个 process_view() 的函数 这个函数是在 Django 系统调用 views 视图函数前被调用它的返回值是 None 或者一个 HttpResponse 如果为 None那么系统会接着调用视图函数如果是 HttpResponse 作为返回值说明系统在这里已经处理了请求不需要再走views视图函数然后就会直接返回。 我们通过下面的例子来解释这个函数作用。 4、记录访问 ip 的功能实现 假设我们需要禁止某一个或者某一个 ip 列表的请求访问我们的系统 当然这个操作在 web 服务器那部分就可以拦截这里就是单纯举个例子 那么我们这样设置一个 process_view 的功能在真正执行视图函数也就是url 匹配上的 view函数前取出这个 request 的访问的ip然后进行判断如果在 禁止列表那么则直接返回一个禁止访问的页面。 class TestMiddleware:def __init__(self, get_response):self.get_response get_responsedef __call__(self, request):response self.get_response(request)return responsedef process_view(self, request, view_func, *view_args, **view_kwargs):EXCLUDE_IPS [192.168.1.54]if HTTP_X_FORWARDED_FOR in request.META:ip request.META[HTTP_X_FORWARDED_FOR]else:ip request.META[REMOTE_ADDR]if ip in EXCLUDE_IPS:return HttpResponse(h1您的ip被禁止/h1)return None在这里我们拿到请求的 ip 地址去和我们定义的禁止ip列表做比较 如果在禁用列表则直接返回 HttpResponse不接着请求我们的服务来 否则就返回 None系统接收到 None 之后会接着往下处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928978.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

reLeetCode 热题 100- 438. 找到字符串中所有字母异位词 - MKT

reLeetCode 热题 100- 438. 找到字符串中所有字母异位词 1 map 固定窗口实现 不够速度 词频统计 class Solution { public:vector<int> findAnagrams(string s, string p) {map<char,int> p_map;map<…

网站维护怎么样本溪网站设计公司

问题 你是否在项目中使用线程池遇到过以下问题&#xff1f; 1.创建线程池核心参数不好评估&#xff0c;随着业务流量的波动&#xff0c;极有可能出现生产故障。 2.不支持优雅关闭&#xff0c;当项目关闭时&#xff0c;大量正在运行的线程池任务被丢弃。 3.不支持运行时监控…

做产品表情的网站深圳罗湖网站建设

/*问题出现&#xff1a;如何检查一个目录是否可写&#xff0c;如何目录下还有目录和文件&#xff0c;那么都要检查思路&#xff1a;(1)首先先写出检查空目录是否可写的算法&#xff1a;在该目录中生成一个文件&#xff0c;如果不能生成&#xff0c;表明该目录没有写的权限(2)使…

一个网站两个域名吗软件工程开发流程

许多个体创业者面临的一个关键挑战是如何为其企业创造稳定的需求。 作为个体创业者&#xff0c;您无法使用营销团队&#xff0c;因此许多人通过推荐和他们的网络来产生需求。因此&#xff0c;扩大您的网络是发展您的业务和产生持续需求的最佳策略。 这就是个人IP和品牌发挥作…

网站投资多少钱网站建设标准合同

一、极验请求分析 滑块测试网站入口 我们首先访问极验滑块验证码测试主页&#xff0c;以便获取后续请求中的url。 滑块验证过程抓包 通过抓包工具分析滑块验证过程&#xff0c;发现与第三代滑块验证码相比&#xff0c;第四代简化了验证过程&#xff0c;加密参数w的生成也变得…

杭州网站建设官方蓝韵网络宁夏自治区住房城乡建设厅网站

目录 执行流程 拦截路径 过滤器链 小结 执行流程 过滤器Filter拦截到请求之后&#xff0c;首先执行方放行之前的逻辑&#xff0c;然后执行放行操作&#xff08;doFilter&#xff09;&#xff0c;然后会访问对应的Web资源&#xff08;对应的Controller类&#xff09;&#…

下载源代码的网站自学建百度首页网站

文章目录1 树的基本概念1.1 树的形式定义1.2 树的递归定义1.3 树的基本术语1.4 二叉树的递归定义1.5 存储方法1.6 满二叉树VS完全二叉树2 二叉树的性质3 代码实现1 树的基本概念 1.1 树的形式定义 T{D&#xff0c;R} D为树T中包含n个结点的有限集合&#xff0c;R为树中结点之间…

中通顺昌建设有限公司网站短视频拍摄剪辑培训班

Vue和React都是流行的JavaScript框架&#xff0c;用于构建用户界面。它们有以下区别&#xff1a; 语言&#xff1a;Vue使用基于HTML的模板语法&#xff0c;而React使用JSX&#xff0c;这是一种将HTML和JavaScript组合的语法。 学习曲线&#xff1a;Vue相对较容易学习&#xff…

网站的衡量标准网络产品服务的提供者不得设置

一、前言 随着科技的快速发展和互联网的普及&#xff0c;社区团购系统作为一种新型的购物模式&#xff0c;正以其便捷高效的特性&#xff0c;逐渐改变着消费者和商家的互动方式。社区团购系统为商家提供丰富的营销活动和便捷高效的门店管理体系&#xff0c;为消费者提供真正实惠…

寺庙招人做网站维护吗高端网站建设网络设计互联网信息化服务类

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用按键、LCD1602液晶、蜂鸣器模块、CO、NOx、HC和PM2.5气体传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示CO、NOx、HC和…

Flutter 251006

安卓 主页面的配置 <activityandroid:name=".MainActivity"对应Java或kotlin代码同名路径src/main/kotlin/com/example/xxx/下的对应主类文件MainActivity.java MainActivity.kt 布局Widge Row主轴是水…

綦江建站哪家正规百度seo排名优化是什么

ChineseDiachronicCorpus ChineseDiachronicCorpus&#xff0c;中文历时语料库&#xff0c;横跨六十余年&#xff0c;包括腾讯历时新闻2009-2016&#xff0c;人民日报历时语料1946-2003&#xff0c;参考消息历时语料1957-2002。基于历时流通语料库&#xff0c;可用于历时语言变…

郑州加盟网站建设国内做性视频网站

牙线是由合成纤维或其他材料制成&#xff0c;或添加香料、色素、活性成分等&#xff0c;用来清洁牙齿邻面附着物的线。能够有效包裹牙齿&#xff0c;对于清洁平面/凸起牙面和牙齿邻接面的牙菌斑效果很好&#xff0c;还可以实现对于牙缝间食物/异物的剔除&#xff0c;有效清洁口…

烟台产品网站建设做瞹瞹瞹免费网站

存在问题 页面依次发起多次请求&#xff0c;服务端会根据有无携带Set-Cookie从而生成新的JSESSIONID返回&#xff0c;前端需要在后续请求自动携带该值&#xff08;浏览器行为&#xff0c;无需代码控制&#xff09; 但目前的情况为&#xff1a;前端请求无法自动携带&#xff0c;…

电子商务网站建设实训内容wordpress在哪里下载地址

文章目录 webGoat靶场第 四 关 修改投票数第五关第七关 你购买书&#xff0c;让Tom用户付钱 webGoat靶场 越权漏洞 将webgoat-server-8.1.0.jar复制到kali虚拟机中 sudo java -jar webgoat-server-8.1.0.jar --server.port8888解释&#xff1a; java&#xff1a;这是用于执行…

网站制作产品资料绿植网站怎么做

戳蓝字“CSDN云计算”关注我们哦&#xff01;云计算演进历程云计算产生背景云计算的产生是需求推动、技术进步、商业模式转变共同促进的结果。需求推动指的是政企客户低成本且高性能的信息化需求&#xff1b;人用户的互联网、移动互联网应用需求强烈&#xff0c;追求更好用户体…

随州北京网站建设摄影网站建设论文

电脑在运行的时候&#xff0c;会出现一些代码&#xff0c;软件安装不上啊或电脑使用中蓝屏啊出现的代码&#xff0c;每一次出现问题电脑都会以代码的形式反馈&#xff0c;我们就可以凭借错误代码来判断故障源。小编整理了一些常出现的错误代码和问题分享给大家&#xff0c;希望…

微信引流神器手机电影网站怎么做药品推广方案策划

函数基本概念&#xff1a; 函数声明&#xff1a;function box(){} 函数表达式&#xff1a;var box function(){}; 匿名函数&#xff1a;function(){} 属于函数表达式 匿名函数的作用&#xff1a;如果将匿名函数赋值给一个变量&#xff0c;则声明了一个函数&#xff1a; var bo…

上海文明城市建设网站网站设计报价.doc

说明 在window上使用vscode&#xff0c;其默认的缓存&#xff08;包含代码缓存&#xff0c;插件等&#xff09;存储路径是在c盘&#xff0c;即使将vscode安装在其它磁盘。频繁使用vscode&#xff0c;vscode会占用C盘大量磁盘空间&#xff0c;C盘空间不充裕&#xff0c;会被vsc…