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代码写的12306订票代码
Dec 20 Python
Python基础知识_浅谈用户交互
May 31 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
python使用tkinter实现简单计算器
Jan 30 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
python对离散变量的one-hot编码方法
Jul 11 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
python中关于数据类型的学习笔记
Jul 19 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为php增加openssl模块的方法
2011/06/14 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
使用C++扩展Python的功能详解
2018/01/12 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python增加图像对比度的方法
2019/07/12 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
幼师自荐信范文
2013/10/06 职场文书
大学生求职自我评价
2014/01/16 职场文书
班长竞选演讲稿
2014/04/24 职场文书
教师演讲稿大全
2014/05/16 职场文书
股东授权委托书范本
2014/09/13 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
关于幸福的感言
2015/08/03 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫