Comment recharger automatiquement Django lors de la modification des fichiers?
Comment surveiller automatiquement .py, .js et d'autres fichiers de code source pour redémarrer un Django (ou n'importe quel autre) application et actualiser le navigateur lors de la modification de la source? Cela est possible dans les Rails à l'aide de la garde, JS applications à l'aide de grunt-contrib-montre et l'accompagnement livereload plugin de navigateur. Comment puis-je faire pour Python web apps comme Django?
Je démarre mon serveur Django avec
foreman start
c'est mon Procfile:
web: newrelic-admin run-program gunicorn app.wsgi
comme suggéré par le Heroku/Newrelic docs ou l'habitude
python manage.py runserver
La runserver
méthode ne redémarrez le serveur .py source de changements, mais pas le navigateur et ne regarde pas les autres fichiers, j'ai pu courir la garde à côté d'elle, mais ensuite j'ai deux processus, j'ai eu à prendre soin d', alors que grunt ou râteau offre unifiée des interfaces. Je me demande ce qu'il est recommandé de le faire chez les développeurs Python?
Je n'ai pas tout détaillé, une documentation complète sur cette seule incomplète discussions ici et il y.
OriginalL'auteur metakermit | 2013-09-30
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin d'une extension de navigateur pour accomplir auto rafraîchit. Jetez un oeil à https://github.com/tjwalch/django-livereload-server.
J'ai posté une plus grande réponse à ce sujet à https://stackoverflow.com/a/36961244/2950621
Il fonctionne en utilisant un manage.py de commande (serveur) pour surveiller votre .js et d'autres fichiers statiques. Le serveur envoie un signal au navigateur via les websockets. Il y a quelques code côté client injecté sur chaque page. Le code injecté répond au signal et actualiser le navigateur.
OriginalL'auteur nmgeek
Installer ce django app:
Sur votre django fichier de paramètres d'ajouter quelque chose comme:
Méfiez-vous de vous inscrire 'livesync' avant 'django.contrib.staticfiles " si vous l'utilisez.
Maintenant, il suffit de démarrer votre serveur de développement:
Check this out pour plus de détails: https://github.com/fabiogibson/django-livesync
OriginalL'auteur Fábio Gibson
À l'aide de
python manage.py runserver
est ce que la plupart des utilisation. Vous devrez utiliser un autre outil comme: http://livejs.com/ pour actualiser le navigateur lui-même, car Django n'est pas vraiment conscient.OriginalL'auteur stormlifter
Frustré avec tous les explicite actualise, j'ai créé une extension de navigateur pour Firefox et Chrome, d'automatiser cela. L'extension fonctionne avec Django app que vous ajoutez à votre liste d'applications dans INSTALLED_APPS. Vous pouvez en savoir plus à l' dépôt github.
Si l'opération a code source complet, les extensions sont également disponibles dans le site web du magasin. Juste la recherche pour "Django Auto Refresh'. Avec ces derniers, il vous suffit de copier l'application dans notre projet du dossier et de l'inclure via INSTALLED_APPS. Je voulais ajouter un pip script de configuration, mais je n'ai pas trouvé le temps de le faire.
HTH. Toutes mes excuses si cela ressemble à de l'auto promotion.
OriginalL'auteur Hari Mahadevan