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读取Android permission文件
Nov 01 Python
python django集成cas验证系统
Jul 14 Python
Python实现高效求解素数代码实例
Jun 30 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
Python测试人员需要掌握的知识
Feb 08 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Python实现验证码识别
Jun 15 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
python判断元素是否存在的实例方法
Sep 24 Python
Django如何继承AbstractUser扩展字段
Nov 27 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版(3)
2006/10/09 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
extjs 如何给column 加上提示
2014/07/29 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
python sys模块sys.path使用方法示例
2013/12/04 Python
python类装饰器用法实例
2015/06/04 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
波兰补充商店:Muscle Power
2018/10/29 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
电脑租赁公司创业计划书
2014/01/08 职场文书
社团活动策划书范文
2014/01/09 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
岗位安全生产责任书
2014/07/28 职场文书
班主任2015新年寄语
2014/12/08 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
导游词之千岛湖
2019/09/23 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript