Tôi đang viết một lớp Django Middleware mà tôi muốn chỉ thực hiện một lần khi khởi động, để khởi tạo một số mã đơn vị khác. Tôi đã theo dõi giải pháp rất hay được đăng bởi sdolan tại đây , nhưng thông báo "Xin chào" được xuất ra thiết bị đầu cuối hai lần . Ví dụ
from django.core.exceptions import MiddlewareNotUsed
from django.conf import settings
class StartupMiddleware(object):
def __init__(self):
print "Hello world"
raise MiddlewareNotUsed('Startup complete')
và trong tệp cài đặt Django của tôi, tôi đã có lớp trong MIDDLEWARE_CLASSES
danh sách.
Nhưng khi tôi chạy Django bằng máy chủ và yêu cầu một trang, tôi nhận được trong thiết bị đầu cuối
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
Bất cứ ý tưởng tại sao "Hello world" được in hai lần? Cảm ơn.