上次說到django的中間件,此次就來寫一個。此次就是經過中間件來作一個相似於日誌的記錄。python
1、建立一箇中間件目錄與中間件文件django
中間件目錄是Middle,log.py是中間件文件
ide
如今來看看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目錄:url
2、將這個中間件加入到django裏日誌
想要這個中間件生效,還須要在django的settings.py文件里加入這個中間件配置,在MIDDLEWARE里加入'Middle.log.Row1',code
3、測試中間件
訪問網站,在log目錄下就會生成以日期爲命名的.log文件,文件內容爲:blog
4、總結
經過上面,咱們能夠編寫各類你須要的中間件,來更完善你的項目,一樣也避免了在views.py文件裏寫過多的代碼。好比訪問限制、黑白名單等等。。