当前位置: 首页 > news >正文

阿里云上如何用iis做网站网站建设硬件支撑

阿里云上如何用iis做网站,网站建设硬件支撑,wordpress的中文插件安装教程视频教程,网站开发分类Django——中间件 中间件可以介入 Django 的请求和响应的处理过程#xff0c;修改 Django 的响应数据。中间件的设计为程序开发者提供了一种无侵入式的开发方式#xff0c;增强 Django 框架的健壮性。 中间件可以在 Django 处理视图的不同阶段的干预。 Django 框架中原先内…Django——中间件 中间件可以介入 Django 的请求和响应的处理过程修改 Django 的响应数据。中间件的设计为程序开发者提供了一种无侵入式的开发方式增强 Django 框架的健壮性。 中间件可以在 Django 处理视图的不同阶段的干预。 Django 框架中原先内置的一些中间件 MIDDLEWARE [# 主要对安全性访问处理请求把 http 请求重定向为 https 请求django.middleware.security.SecurityMiddleware,# 会话支持django.contrib.sessions.middleware.SessionMiddleware,# 检查是否允许浏览器访问类型 检查 url 是否需要添加 /django.middleware.common.CommonMiddleware,# 跨站点防御保护django.middleware.csrf.CsrfViewMiddleware,# 用户认证django.contrib.auth.middleware.AuthenticationMiddleware,# Cookie 会话支持django.contrib.messages.middleware.MessageMiddleware,# 点击劫持保护django.middleware.clickjacking.XFrameOptionsMiddleware, ]1、项目启动的时候 2、请求进来的时候需要经过中间件之后才能到后续的路由匹配操作 3、响应到浏览器的时候需要经过中间件1、认证登录 2、统计访问流量 3、拦截请求可以限制IP的请求频率或者直接封禁IP中间件的执行顺序 在请求处理之前中间件根绝配置文件中的配置列表从上往下依次执行 在请求处理之后中间件根绝配置文件中的配置列表从下往上依次执行 1、自定义中间件 定义一个中间件工厂函数返回一个可以被调用的中间件闭包。 中间件的工厂函数必须接收一个可以被调用的 get_response 对象请求处理。 def simple_middleware(get_response):# 这里编写的代码只在 Django 项目启动的时候被执行def middleware(request):request : 和我们写的视图函数接收的request数据一致都是浏览器的请求数据# 这里编写的代码是在请求处理之前被执行response get_response(request)# 这里编写的代码是在请求处理之后被执行return responsereturn middleware在应用下新建一个 middleware.py 文件 def simple_middleware(get_response):# 这里编写的代码只在 Django 项目启动的时候被执行print(初始化 Django)def middleware(request):request : 和我们写的视图函数接收的request数据一致都是浏览器的请求数据# 这里编写的代码是在请求处理之前被执行print(request 请求被处理之前)response get_response(request)# 这里编写的代码是在请求处理之后被执行print(request 请求被处理之后)return responsereturn middleware定义好中间件之后需要到配置文件中的 MIDDLEWARE 列表中添加自定义的中间件路径 # 自定义中间件注册 MiddlewareApp.middleware.simple_middleware,2、自定义中间件类 自定义中间件类需要继承 MiddlewareMixin process_request 方法 是 Request 预处理函数这个方法就是在请求处理之前被调用 from django.utils.deprecation import MiddlewareMixin from django.shortcuts import HttpResponseclass MyMiddleware(MiddlewareMixin):def process_request(self , request):# request 用户请求的数据# 可以没有返回值None 中间件就会按照正常的流程执行 如果配置列表后面还有中间就进入下一个中间件# 否则则进入 url 请求匹配print(process_request 预处理函数)# 有返回值HttpResponse 对象就不执行处理其他的中间件以及不进行 url 匹配这里整个请求停止# 将这里返回的 HttpResponse 对象响应给浏览器return HttpResponse(我是 process_request 响应的数据)process_response 方法这个方法是在请求处理之后被调用 def process_response(self , request , response)::param request: 用户请求的数据:param response: 是视图返回出来的 HttpResponse 对象:return: 必须要有返回值 必须返回一个 HttpResponse 对象可以返回视图的 response 对象也可以自定义 HttpResponse 对象 , 则视图中返回值无效print(process_response 执行)# return responsereturn HttpResponse(我是 process_response 响应的数据)process_view 方法这个方法在路由匹配之后 视图响应之前 def process_view(self , request , view_func , view_args , view_kwargs)::param request::param view_func: 请求的 url 匹配到的视图函数:param view_args: 是给视图传递的参数:param view_kwargs: 是给视图传递的参数:return: 可以没有返回值可以返回值匹配到的视图函数也可以自定义 HttpResponse 对象 , 则视图函数无效print(process_view 执行)# return view_func(request) # okreturn HttpResponse(我是 process_view 响应的数据)3、中间件拦截请求 1、限制 IP 访问频率 visit_ip {} class IpMiddleware(MiddlewareMixin):1、 获取访问的主机IP2、获取到 IP 访问的当前时间3、时间间隔为40s 超过15次def process_request(self , request):# 获取用户访问的主机 IPip request.META.get(REMOTE_ADDR)# 获取 IP 访问的当前时间visit_time time.time()# 数据保存格式{IP:[访问时间,……]IP2:[访问时间,……]……}# 判断 IP 是否在字典中存在 如果存在则这个 IP 不是第一次访问# 否则 这个 IP 是第一次访问if ip not in visit_ip:visit_ip[ip] [visit_time]# ip 在字典中将访问时间间隔为 大于40s的进行删除时间记录old_time visit_ip.get(ip)for t in old_time:# 如果列表时间和当前访问时间超过 40s 则清除掉if visit_time - t 40:old_time.remove(t)# 判断时间列表中记录是否有超过 15 次# 没有超过进行记录当前的访问时间# 超过限制当前 IP 访问if len(old_time) 15:old_time.insert(0 , visit_time)else:return HttpResponse(您别累着了 休息一下吧)2、禁止 IP 访问 black_ip {} # {IP:count} visit_ip {} class IpMiddleware(MiddlewareMixin):1、 获取访问的主机IP2、获取到 IP 访问的当前时间3、时间间隔为40s 超过 5次4、保存用户的不良行为记录次数 超过 3def process_request(self , request):# 获取用户访问的主机 IPip request.META.get(REMOTE_ADDR)## 从数据库中取出ip进行判断ip 数据库中有则表示已经拉黑 没有则表示正常# 检查 IP 是否被拉黑black_num black_ip.get(ip , 0)if black_num 3:## 将 ip 拉黑保存到数据库中return HttpResponse(status404)# 获取 IP 访问的当前时间visit_time time.time()# 数据保存格式{IP:[访问时间,……]IP2:[访问时间,……]……}# 判断 IP 是否在字典中存在 如果存在则这个 IP 不是第一次访问# 否则 这个 IP 是第一次访问if ip not in visit_ip:visit_ip[ip] [visit_time]# ip 在字典中将访问时间间隔为 大于40s的进行删除时间记录old_time visit_ip.get(ip)for t in old_time:# 如果列表时间和当前访问时间超过 40s 则清除掉if visit_time - t 40:old_time.remove(t)# 判断时间列表中记录是否有超过 15 次# 没有超过进行记录当前的访问时间# 超过限制当前 IP 访问if len(old_time) 5:old_time.insert(0 , visit_time)else:# 保存累计不良行为记录次数black_ip[ip] black_num 1return HttpResponse(您别累着了 休息一下吧)
http://www.hkea.cn/news/14519084/

相关文章:

  • 免费网站搭建系统阿里云cdn wordpress
  • 福州网站制作套餐wordpress前台注册登录代码
  • 高阳县做企业网站百度资源提交
  • 公司网站运营注意事项珠海停车app
  • 电子商务网站设计书重庆搜索引擎优化seo
  • 福州网站制作建设建设网站的网页设计
  • 东莞市公司网站建设品牌国外网站如何做推广
  • 获取网站缩略图网站开发培训费
  • 内销常用网站网页设计与制作跟编程有关吗
  • 厦门 网站建设 网站开发 未来网络百度网址安全检测中心
  • 如何dns解析网站网红营销的缺点
  • 垂直网站做排名网站做城市地图
  • 广州有网站建设学校网站建设工程师面试对自己的前景规划
  • 深圳市官网网站建设报价数据分析培训机构哪家好
  • 网站域名备案 更改吗最近最新手机中文大全8
  • 适合做外链的网站wordpress同步到微信
  • 南京电商网站设计公司山西教育学会网站建设
  • 公司内部网站系统工业和信息化部反诈中心发短信
  • 甘孜网站建设网上商城系统流程图
  • 做队徽的网站ckplayer wordpress
  • 网站建设合同有哪些wordpress邮箱链接无效
  • 如何远程连接 网站 数据库大一期末网页设计作业
  • wordpress修改域名登录后台seo网络优化教程
  • 网站建设用什么软件大连响应式网站
  • 做电影网站哪个系统好个人网站备案名称大全
  • 深圳网站建设服务清单苏州网页设计费用
  • 摄影网站设计报告资深网页设计师0经验培训
  • 企业网站建设包含哪些内容建设网站是主营成本吗
  • 网站怎么做弹出表单华为软件开发工程师月薪多少
  • 广州市城乡和建设局网站杭州网站建设怎么样