Saya sedang menulis kelas Django Middleware yang ingin saya jalankan hanya sekali saat startup, untuk menginisialisasi beberapa kode arbriter lainnya. Saya telah mengikuti solusi yang sangat bagus yang diposting oleh sdolan di sini , tetapi pesan "Halo" adalah output ke terminal dua kali . Misalnya
from django.core.exceptions import MiddlewareNotUsed
from django.conf import settings
class StartupMiddleware(object):
def __init__(self):
print "Hello world"
raise MiddlewareNotUsed('Startup complete')
dan dalam file pengaturan Django saya, saya punya kelas yang termasuk dalam MIDDLEWARE_CLASSES
daftar.
Tetapi ketika saya menjalankan Django menggunakan runserver dan meminta halaman, saya masuk ke terminal
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
Adakah ide mengapa "Hello world" dicetak dua kali? Terima kasih.