`
duka
  • 浏览: 39793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[django]自制一个打印SQL语句的中间件

阅读更多
要在自带的runserver 下运行,也就是开发环境下,为了方便部署,在 project 目录新建一个文件:
debug.py
#coding=utf8
DEBUG=True
MIDDLEWARE_CLASSES += ('sqlmiddleware.PrintSQL',) 


再建一个中间件在project目录下:
sqlmiddleware.py
#coding=utf8
from django.db import connection
class PrintSQL(object):
  def process_response(self, request, response):
    temp = 0
    for x in connection.queries:
      print x
      temp += float(x['time'])
    print 'time count:',temp,'=' * 40


准备工作做完了。下面运行服务器吧:
python manage.py runserver 127.0.0.1:8000 --settings debug

好了,你的每一次request都会在shell中看到SQL语句了。
分享到:
评论
4 楼 cm2355 2008-12-06  
我也觉得django debug toolbar很好用
3 楼 jinhao7773 2008-11-17  
django debug toolbar 有好几个分支版本。
建议使用
http://github.com/dcramer/django-debug-toolbar/tree/master

它可以分析重复的SQL。
2 楼 duka 2008-11-14  
jinhao7773 写道

这样的功能django就内置了啊。django.core.context_processors.debug 而且现在有个工具叫django debug bar 用来分析生成的SQL更方便。

不错,我去试试。
1 楼 jinhao7773 2008-11-13  
这样的功能django就内置了啊。django.core.context_processors.debug

而且现在有个工具叫django debug bar 用来分析生成的SQL更方便。

相关推荐

    获取django框架orm query执行的sql语句实现方法分析

    ### 获取Django框架ORM Query执行的SQL语句实现方法分析 在Django开发过程中,ORM(Object Relational Mapping)提供了一种便捷的方式来处理数据库操作,它允许开发者使用Python语法来进行数据库查询,而无需直接...

    Django是一个开放源代码的Web应用框架

    Django自动提供了ORM(对象关系映射),使得开发者可以用Python代码操作数据库,而无需编写SQL语句。 3. 模板(Template): 模板系统是Django的一大亮点,它允许开发者用纯HTML编写页面,并使用模板语言插入动态...

    Django打印出在数据库中执行的语句问题

    此时可以考虑使用日志打印的方式,或者自定义一个中间件来捕获并打印所有类型的SQL语句。 #### 四、小结 通过上述两种方法,开发者可以在Django项目中方便地查看执行的SQL语句,这对于提高应用性能、定位问题以及...

    Django Web开发指南.pdf

    Django的ORM系统提供了强大的数据库操作能力,它允许开发者使用Python编程语言直接操作数据库中的数据,而无需编写SQL语句: - 数据库的配置和管理。 - Python类与数据库表之间的映射。 - 数据库查询语言的抽象...

    django python3 实例下载

    在Python Web开发领域,Django是一个非常流行且功能强大的框架,它以其“快速开发、清晰设计、内置安全”为特点。本实例将探讨如何在Python3环境下结合Django和MySQL数据库进行项目开发。 1. **Django与Python3的...

    django实现的一个图书管理系统源码.zip

    - Django内置ORM(对象关系映射),可以方便地操作数据库,无需直接编写SQL语句。 - Django的URL routing系统允许通过配置URL模式来映射到视图函数。 2. 数据库模型(Model): - 在Django中,每个数据模型通常...

    django3.2.5+asgiref-3.3.2+sqlparse0.2.2

    sqlparse-0.2.2是一个用于解析SQL语句的Python库,对于数据库操作和分析有着重要帮助。 1. Django 3.2.5 知识点: - Django 3.2引入了长期支持(LTS)版本,意味着它将获得更长时间的安全更新和支持。 - 该版本...

    Django Web开发指南(护眼绿豆沙底色版)

    2. Django ORM:对象关系映射(ORM)系统是Django的核心特性之一,允许开发者用Python代码来管理数据库操作,而不需要编写SQL语句。Django提供了一套强大的API来查询数据库、创建和修改记录,从而简化了数据库编程。...

    Django-2.0.4 Django-2.0.4

    9. **数据库 ORM**:Django的ORM(对象关系映射)使得开发者可以使用Python对象来操作数据库,而无需直接写SQL语句。 10. **性能优化**:Django 2.0.4包含了一些性能优化,例如更好的查询缓存,以及对Python 3的...

    Django -1.11.6下载

    2. ORM(对象关系映射):Django的ORM允许开发者用Python代码来操作数据库,无需编写SQL语句,简化了数据库管理。在Django 1.11.6中,ORM的性能和功能得到了进一步优化。 3. 数据库管理:Django提供了强大的数据库...

    django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】

    `sql_array`是一个包含多个SQL语句的列表,所有这些SQL语句都需要在一个事务中完成。 #### 四、总结 事务处理在Django开发中非常重要,特别是在需要确保数据一致性的情况下。通过了解Django提供的不同事务处理方式...

    Lightweight Django

    Django是一个基于Python的开源Web框架,其核心设计理念是“简洁、实用和快速”。它提供了模型-视图-控制器(MVC)架构模式,使得开发者可以高效地构建复杂、高性能的Web应用。在《轻量级Django》一书中,作者深入...

    django网站开发源码

    在项目中,数据的存储、查询和操作都是通过Django的ORM完成的,这使得数据库操作更加简洁,无需编写SQL语句。 3. 模型(Model): 在Django中,模型是数据库表的Python表示,定义了字段和行为。每个模型类都继承自...

    利用Django学习并开发的小说网源码.zip

    通过Django的ORM(对象关系映射)技术,我们可以用Python代码来操作数据库,而无需编写SQL语句。 4. **Django视图(View)** 视图是处理用户请求并返回响应的部分。视图函数接收HTTP请求,处理业务逻辑,然后返回...

    Django课件.zip

    Django是一个高级的Python Web框架,用于快速开发安全且可维护的网站。它遵循“DRY”(Don't Repeat Yourself)原则,旨在减少代码重复,提高开发效率。Django的核心组件包括模型(Model)、视图(View)、模板...

    Django Book中文版

    Django,一个由Python编程语言编写的高级Web开发框架,因其高效、强大和可扩展性而备受赞誉。它遵循"DRY(Don't Repeat Yourself)"原则,旨在帮助开发者快速构建安全且功能丰富的Web应用。Django Book中文版,是由...

    Django-2.0.13.tar.gz

    2. **ORM(对象关系映射)**:Django的ORM允许开发者使用Python代码操作数据库,而不是SQL语句,提高了开发效率和跨数据库兼容性。 3. **管理后台(Admin)**:Django内置了一个强大的管理后台,只需简单的配置,...

    django源码

    在下载的"django源码"中,"DjangoBlog"可能是基于Django开发的一个博客系统示例。这个项目可能包含了Django的常用功能如用户认证、文章发布、评论系统等,是实践Django开发和学习源码的好起点。通过分析这个项目的...

    Django2.0中文文档

    Django还自带了一个ORM(对象关系映射)工具,这使得开发者可以使用Python代码来操作数据库中的数据,而无需编写原始的SQL语句。 Django还提供了强大的模板系统,允许开发者创建动态生成的HTML页面。模板系统将业务...

    The Django Book 2.0中文版

    例如,Django的ORM系统可以将数据库操作抽象为Python中的类,从而不需要手写SQL语句。它还提供了一种通用的模板系统,允许你使用继承和包含来重用模板代码,这样可以减少模板的重复部分,并使得网站的设计更加统一和...

Global site tag (gtag.js) - Google Analytics