我正在编写一个Django中间件类,我只想在启动时执行一次,以初始化其他任意代码.我遵循了sdolan here发布的非常好的解决方案,但是"Hello"消息被输出到终端twice.例如.
from django.core.exceptions import MiddlewareNotUsed
from django.conf import settings
class StartupMiddleware(object):
def __init__(self):
print "Hello world"
raise MiddlewareNotUsed('Startup complete')
在我的Django设置文件中,我把这个类包括在MIDDLEWARE_CLASSES
个列表中.
但当我使用runserver运行Django并请求一个页面时,我进入了终端
Django version 1.3, using settings 'config.server'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Hello world
[22/Jul/2011 15:54:36] "GET / HTTP/1.1" 200 698
Hello world
[22/Jul/2011 15:54:36] "GET /static/css/base.css HTTP/1.1" 200 0
你知道为什么《Hello world》要印两次吗?谢谢