玩蛇网提供最新Python编程技术信息以及Python资源下载!

web.py能条件判断的页面执行计时方法

python 培训

玩蛇网之前有贴出过关于web.py 的页面执行计时的网友分享贴。那是用Python的装饰器实的web.py页面执行计时方法(页脚的 html注释显示执行时间)需要执行计时的位置还要加个装饰器,那样操作是比较麻烦的。

这次网友提供的是web.py能条件判断的页面执行计时方法,这次会自己判断是否是html或xml。如果满足条件就执行添加计时操作;否则就仅仅把耗时记录在context里面。

python 计时器

实现计时的中间件代码:

def timespent_processor(handler):       
    starttime = time.time()
    result = handler()
    web.ctx.timespent = timespent = time.time() - starttime
    content_type = dict(web.ctx.headers).get("Content-Type")
    xml_types = ("text/html", "application/xhtml+xml", "application/xml")
    if content_type in xml_types:
        result += "\n<!-- %d ms -->" % (timespent * 1000)
    return result

application.add_processor(timespent_processor)

完整测试python源码

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import time
import json
import web

# ----------
# Processors
# ----------

def timespent_processor(handler):       
    starttime = time.time()
    result = handler()
    web.ctx.timespent = timespent = time.time() - starttime
    content_type = dict(web.ctx.headers).get("Content-Type")
    xml_types = ("text/html", "application/xhtml+xml", "application/xml")
    if content_type in xml_types:
        result += "\n<!-- %d ms -->" % (timespent * 1000)
    return result

# -----------
# Application
# -----------

urls = ("/", "Home",
        "/json/", "Json")

application = web.application(urls, globals())
application.add_processor(timespent_processor)

# -----------
# Controllers
# -----------

class Home(object):
    def GET(self):
        web.header("Content-Type", "text/html")
        return "<h1>Hello, World</h1>"

class Json(object):
    def GET(self):
        web.header("Content-Type", "application/json")
        return {'title': "Hello, World"}

# ------
# Runner
# ------

if __name__ == "__main__":
    application.run()

python 计时方法相关文章推荐:
Python datetime计时程序的实现方法
web.py页面执行计时,Python装饰器实现方法

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/scripts-shell/ss2339.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-04-20 09:53 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部