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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
python使用win32com库播放mp3文件的方法
May 30 Python
python 基础教程之Map使用方法
Jan 17 Python
Python中的id()函数指的什么
Oct 17 Python
Python探索之修改Python搜索路径
Oct 25 Python
Python 类的特殊成员解析
Jun 20 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
简单了解如何封装自己的Python包
Jul 08 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
如何利用python创作字符画
Jun 25 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
截获网站title标签之家内容的例子
2006/10/09 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
js实现五星评价功能
2017/03/08 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
python中引用与复制用法实例分析
2015/06/04 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python requests证书问题解决
2019/09/05 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
库房主管岗位职责
2013/12/31 职场文书
手机被没收检讨书
2014/02/22 职场文书
自我查摆剖析材料
2014/10/11 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
红色影片观后感
2015/06/18 职场文书
教育读书笔记
2015/07/02 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书