Sto scrivendo una classe Django Middleware che voglio eseguire solo una volta all'avvio, per inizializzare un altro codice arbritario. Ho seguito la bella soluzione pubblicata da sdolan qui , ma il messaggio "Hello" viene inviato al terminale due volte . Per esempio
from django.core.exceptions import MiddlewareNotUsed
from django.conf import settings
class StartupMiddleware(object):
def __init__(self):
print "Hello world"
raise MiddlewareNotUsed('Startup complete')
e nel mio file delle impostazioni di Django, ho la classe inclusa MIDDLEWARE_CLASSESnell'elenco.
Ma quando eseguo Django usando runtime server e richiedo una pagina, arrivo nel terminale
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
Qualche idea sul perché "Hello world" sia stampato due volte? Grazie.