2013-09-29 19 views
11

Come posso livereloadDjango templates?Come caricare i modelli Django?

+0

@jthill, sto cercando risposte e soluzioni costruttive e pratiche. I risultati di ricerca di Google non li hanno forniti. –

+0

OK, lascia che ti ripeta: qual è la cosa migliore che hai trovato finora? Dimostralo e dì dove sei bloccato. Come è ora, "risposte costruttive e pratiche" è meglio dire "qualcuno che ricerca e scrive un articolo su misura per le mie esigenze specifiche, che declino di affermare". – jthill

+0

Salve @jthill, per "caricare i modelli Django" significa che quando cambio i miei modelli Django la modifica deve essere automaticamente propagata al browser in modo da non doverla ricaricare da sola. Sto facendo questa domanda perché non ho visto nessuna di queste soluzioni dai risultati di ricerca di Google/DuckDuckGo. Personalmente non ho provato a farlo funzionare. Come puoi aiutare? –

risposta

7

Ho trovato una soluzione nativa Python che è facile da configurare e funziona bene, Python LiveReload (doc).

pip install livereload 
livereload /path/to/monitor 

È ancora necessario installare browser plugin. Il plugin e LiveReload utilizzano la porta 35729 per parlare (personalizzabile), ma è necessario puntare il browser sulla porta specificata tramite runserver. Per esempio:

python manage.py runserver example.com:8000 

In questo caso l'url Reloaded dal vivo è http://example.com:8000, e quando si cambia i modelli la pagina viene aggiornata automaticamente.

Come nota finale, Python live reload può anche essere utilizzato a livello di programmazione e supporta le applicazioni wsgi.

+0

Ho configurato django-live-reload nel mio ambiente di sviluppo e non è richiesto alcun plugin per il browser. si suppone che django-live-reload sia basato sul pacchetto per il fegato di python, quindi forse il plugin del browser non è più necessario. Usano websocket che devono utilizzare la tecnologia integrata nei browser in questi giorni? – nmgeek

0

È possibile utilizzare python-livereload come questo:

pip install livereload 
livereload project/static 

E per fare questo lavoro aggiungere questo frammento nel vostro base.html:

<script type="text/javascript" src="http://127.0.0.1:35729/livereload.js"></script> 

Quindi eseguire ./manage.py runserver e dovrebbe funzionare.

4

Conservo il pacchetto django-livereload-server che aggiunge sia il javascript livereload che fornisce un server livereload in un modo facile django. Tutto quello che dovete fare è:

  • pip install django-livereload-server
  • aggiungere 'livereload' a INSTALLED_APPS
  • aggiungere 'livereload.middleware.LiveReloadScript'-MIDDLEWARE_CLASSES
  • avviare il server livereload/file di watcher con ./manage.py livereload.
+0

Ho riscontrato un problema in cui indica agli osservatori 0 quando si aggiorna. Per chiarire questo, eseguo ./manage.py livereload su una porta separata e dovrei essere in grado di puntare il browser sul percorso di runserver (predefinito 127.0.0.1:8000) e dovrebbe aggiornarsi automaticamente giusto?Ho provato ad andare alla porta livereload solo per assicurarmi di ottenere un errore 404. Come aggiungo il browser come watcher? –

Problemi correlati