• Application processors
    • 问题
    • 解法
      • 提示: 你也可以在钩子中使用 web.ctx 和 web.input() 。

    Application processors

    问题

    如何使用应用处理器,加载钩子(loadhooks)和卸载钩子(unloadhook)?

    解法

    web.py可以在处理请求之前或之后,通过添加处理器(processor)来完成某些操作。

    1. def my_processor(handler):
    2. print 'before handling'
    3. result = handler()
    4. print 'after handling'
    5. return result
    6. app.add_processor(my_processor)

    可以用加载钩子(loadhook)和卸载钩子(unloadhook)的方式来完成同样的操作,它们分别在请求开始之前和结束之后工作。

    1. def my_loadhook():
    2. print "my load hook"
    3. def my_unloadhook():
    4. print "my unload hook"
    5. app.add_processor(web.loadhook(my_loadhook))
    6. app.add_processor(web.unloadhook(my_unloadhook))

    你可以在钩子中使用和修改全局变量,比如:web.header()

    1. def my_loadhook():
    2. web.header('Content-type', "text/html; charset=utf-8")
    3. app.add_processor(web.loadhook(my_loadhook))

    提示: 你也可以在钩子中使用 web.ctx 和 web.input() 。

    1. def my_loadhook():
    2. input = web.input()
    3. print input