2013-09-29 9 views
11

Jak mogę livereloadDjango templates?Jak zaktualizować szablony Django?

+0

@jthill, szukam konstruktywnych i praktycznych odpowiedzi i rozwiązań. Wyniki wyszukiwania Google ich nie dostarczyły. –

+0

W porządku, pozwól mi przeformułować to: jaka jest najlepsza rzecz, którą do tej pory znalazłeś? Pokaż to i powiedz, gdzie utknąłeś. Tak jak obecnie, "konstruktywne i praktyczne odpowiedzi" są lepiej napisane "ktoś szuka i pisze artykuł dostosowany do moich konkretnych potrzeb, którego odmawiam". – jthill

+0

Hi @jthill, aby "przeżyć na bieżąco szablony Django" oznacza, że ​​po zmianie moich szablonów Django zmiana powinna być automatycznie propagowana do przeglądarki, aby nie musieć jej odświeżać. Zadaję to pytanie, ponieważ nie widziałem takich rozwiązań z wyników wyszukiwania Google/DuckDuckGo. Osobiście nie próbowałem działać. Jak możesz pomóc? –

Odpowiedz

7

Znalazłem rodzime rozwiązanie Pythona, które jest łatwe w konfiguracji i działa dobrze, Python LiveReload (doc).

pip install livereload 
livereload /path/to/monitor 

Trzeba jeszcze zainstalować browser plugin. Wtyczka i LiveReload używają portu 35729 do mówienia (konfigurowalnego), ale musisz skierować przeglądarkę do portu określonego przez runserver. Na przykład:

python manage.py runserver example.com:8000 

W tym przypadku żywo Reaktywacja URL jest http://example.com:8000, a po zmianie szablony strona jest odświeżana automatycznie.

Jako ostatnia uwaga, przeładowanie live Pythona może być również używane programowo i obsługuje aplikacje wsgi.

+0

Konfiguruję Django-live-reload w moim środowisku deweloperskim i nie jest wymagana żadna wtyczka przeglądarki. django-live-reload ma być oparty na pakiecie livereload Pythona, więc może wtyczka przeglądarki nie jest już wymagana. Korzystają z internetowych gniazd internetowych, które muszą korzystać z technologii wbudowanych w przeglądarki w dzisiejszych czasach? – nmgeek

0

Można użyć python-livereload takiego:

pip install livereload 
livereload project/static 

I aby to dzieło dodać ten fragment kodu do swojej base.html:

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

Następnie uruchom ./manage.py runserver i powinno działać.

4

Utrzymuję pakiet django-livereload-server, który dodaje zarówno javascript livereload i zapewnia serwer livereload w łatwy sposób django. Wszystko, co musisz zrobić, to:

  • pip install django-livereload-server
  • dodać 'livereload' do INSTALLED_APPS
  • dodać 'livereload.middleware.LiveReloadScript' do MIDDLEWARE_CLASSES
  • uruchomić serwer livereload obserwatora/pliku z ./manage.py livereload.
+0

Pojawia się problem, który wskazuje 0 obserwatorów podczas aktualizacji. Aby to wyjaśnić, uruchamiam ./manage.py livereload na oddzielnym porcie i powinienem móc skierować przeglądarkę na ścieżkę runserver (domyślnie 127.0.0.1:8000) i powinna ona automatycznie zaktualizować się poprawnie?Próbowałem przejść do portu livereload tylko po to, aby się upewnić, ale wystąpił błąd 404. Jak dodać przeglądarkę jako watcher? –