首页 > 代码库 > 编写一个中间件
编写一个中间件
上次说到django的中间件,这次就来写一个。这次就是通过中间件来做一个类似于日志的记录。
一、创建一个中间件目录与中间件文件
中间件目录是Middle,log.py是中间件文件
现在来看看log.py文件:
也许写的比较low,就是想要记录一下访问项目的时间,ip,请求方式,请求url,返回的状态码。
class Row1(MiddlewareMixin): def process_request(self,request): if request.META.has_key(‘HTTP_X_FORWARDED_FOR‘): ip = request.META[‘HTTP_X_FORWARDED_FOR‘] else: ip = request.META[‘REMOTE_ADDR‘] u = request.path_info m = request.method subfolder = time.strftime("%Y%m%d") e = str(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime(time.time()))) path = str(‘log/‘ + subfolder +‘.log‘) f = open(path,‘a+‘) f.write( ‘[‘+e + ‘]‘+‘\t‘+ m + ‘\t‘+ u + ‘\t‘+ ip +‘\t‘) f.close() def process_response(self,request,response): subfolder = time.strftime("%Y%m%d") path = str(‘log/‘ + subfolder + ‘.log‘) status = str(response.status_code) f = open(path, ‘a+‘) f.write(status + ‘\n‘) f.close() return response
当然,要创建这个log目录:
二、将这个中间件加入到django里
想要这个中间件生效,还需要在django的settings.py文件里加入这个中间件配置,在MIDDLEWARE里加入‘Middle.log.Row1‘,
三、测试
访问网站,在log目录下就会生成以日期为命名的.log文件,文件内容为:
四、总结
通过上面,我们可以编写各种你需要的中间件,来更完善你的项目,同样也避免了在views.py文件里写过多的代码。比如访问限制、黑白名单等等。。
本文出自 “Linux” 博客,请务必保留此出处http://syklinux.blog.51cto.com/9631548/1940457
编写一个中间件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。