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

计算python代码和db运行时间的middleware

阅读更多
如果一个网页访问速度较慢或并发量较少时,我们需要我定位时间都花在哪里,下面是一个middleware来计算python代码和数据库运行时间:
python 代码
  1. from datetime import datetime  
  2. import os  
  3. import time  
  4.   
  5. from django.conf import settings  
  6. from django.db import connection  
  7. from django.template import Template, Context  
  8.   
  9. class TimeMiddleware(object):  
  10.     def process_request(self, request):  
  11.         request.META['page_render_start'] = time.time()  
  12.         return None  
  13.   
  14.     def process_response(self, request, response):   
  15.         t = Template(''' {{ stat }}            
  16.             ''')  
  17.         stat_fmt = 'Total: %.2f, Python: %.2f, DB: %.2f, Queries: %d'  
  18.         delta = datetime.now() - datetime.fromtimestamp(request.META.get('page_render_start'))  
  19.         total = delta.seconds + delta.microseconds / 1000000.0  
  20.         db = 0  
  21.         for query in connection.queries:  
  22.             db += float(query['time'])  
  23.         stat = stat_fmt % (total, total - db, db, len(connection.queries))  
  24.         print stat  
  25.         return response  
讲上面代码放入一个python文件,然后在项目的settings中注册这个middleware,你就可以知道消耗时间的地方。
分享到:
评论

相关推荐

    基于Python-Django框架实现的学生选课管理系统1

    媒体文件(如上传的教师照片)则需配置MEDIA_ROOT和MEDIA_URL,以便在运行时存储和访问。 12.测试与调试Django提供了丰富的测试工具,可以在开发过程中编写单元测试和集成测试,确保代码的正确性。同时,Django的...

    Scrapy爬虫

    Scrapy爬虫是一种基于Python的高效网页抓取框架,它为开发者提供了强大的工具来构建、管理和运行网络爬虫项目。Scrapy的核心设计理念是模块化,允许用户根据需求灵活配置各个组件,如请求调度器、下载器中间件、爬虫...

    Django_project.zip

    这表示有一个`Question`模型,包含问题文本和发布时间,以及一个`Choice`模型,表示问题的选项及其票数。 4. **视图(Views)**: 视图是处理用户请求并返回响应的部分。在`views.py`中,可能会有如下的视图函数...

    django-training-app:django培训应用程序源代码

    - **中间件(Middleware)**:全局处理请求和响应的组件,可以实现日志记录、权限控制等功能。 - **表单(Forms)**:用于处理用户输入,验证数据,并与视图交互。 - **静态文件**:如CSS、JavaScript和图片,通常...

    Django_test

    8. **测试(Testing)**:Django提供了内置的测试框架,方便编写和运行单元测试和集成测试,确保代码质量。测试通常放在tests.py文件中。 综上所述,Django_test项目展示了如何使用Python的Django框架构建一个Web...

    django 基于中间件实现限制ip频繁访问过程详解

    因为数据库中存储的时间带有时区信息,而程序运行时的当前时间没有时区信息,这导致了无法直接进行时间比较。解决方案是在settings.py中将`USE_TZ`设置为`False`,并且将`TIME_ZONE`设置为适合的时区。这样,无论是...

    Django示例

    在这个例子中,我们创建了一个User模型,包含了用户名(username)、电子邮件(email)和创建时间(created_at)字段。 2. **视图(Views)**:视图是应用的业务逻辑,负责处理HTTP请求并返回响应。它们可以是函数...

    django-project

    **Django项目详解** Django是一个高级的Python Web框架,用于快速开发安全且可维护的网站。...这个项目可能已经包含了这些功能的实现,通过查看源代码和理解各个组件之间的交互,可以深入学习Django的全貌。

    archive:使用 Django 构建的归档系统

    我们使用`django.db.models`模块来创建模型,并通过`python manage.py makemigrations`和`python manage.py migrate`命令将它们应用到数据库。 2. **视图(View)**: 视图处理HTTP请求并返回响应。在归档系统中,...

Global site tag (gtag.js) - Google Analytics