Django实现的自定义访问日志模块示例


Posted in Python onJune 23, 2017

本文实例讲述了Django实现的自定义访问日志模块。分享给大家供大家参考,具体如下:

在Django默认没有访问日志模块,但是我们可以通过Django的Middleware来实现一个自己的访问日志模块。

首先在Django的工程下创建一个middleware.py文件,内容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
class AccessMiddleware(object):
  def process_request(self, request):
    meta = request.META
    print "[%s] PATH_INFO=%s, REMOTE_ADDR=%s, HTTP_USER_AGENT=%s" \
       %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
        meta['PATH_INFO'], meta['REMOTE_ADDR'], meta['HTTP_USER_AGENT'])
    return None
  def process_response(self, request, response):
    return response

其中 process_request() 应当返回 None 或 HttpResponse 对象。

如果返回 None , Django将继续处理这个 request , 执行后续的中间件, 然后调用相应的view.

如果返回 HttpResponse 对象, Django 将不再执行 任何 其它的中间件(不论种类)以及相应的view. Django将立即返回该 HttpResponse .

然后修改settings.py文件,在MIDDLEWARE_CLASSES部分加入上面创建的AccessMiddleware,比如:(见最后面一行)

MIDDLEWARE_CLASSES = (
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
  'django.contrib.messages.middleware.MessageMiddleware',
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
  'django.middleware.security.SecurityMiddleware',
  'commons.middleware.AccessMiddleware',
)

重启服务,然后再访问任意一个页面就会看到有日志输出了。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
Python对多属性的重复数据去重实例
Apr 18 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
Python json读写方式和字典相互转化
Apr 18 Python
Flask缓存静态文件的具体方法
Aug 02 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
Feb 02 Python
详解Python文本操作相关模块
Jun 22 #Python
python字符串过滤性能比较5种方法
Jun 22 #Python
Python编程实现的简单Web服务器示例
Jun 22 #Python
Python实现复杂对象转JSON的方法示例
Jun 22 #Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 #Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 #Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 #Python
You might like
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
js对数字的格式化使用说明
2011/01/12 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python对常见数据类型的遍历解析
2019/08/27 Python
pycharm显示远程图片的实现
2019/11/04 Python
django 简单实现登录验证给你
2019/11/06 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
2014年教师培训的自我评价
2014/01/03 职场文书
结婚典礼证婚词
2014/01/11 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
广播节目策划方案
2014/05/23 职场文书
活动总结报告怎么写
2014/07/03 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
写给医院的感谢信
2015/01/22 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书