.py、.js、およびその他のソースコードファイルを自動的に監視してDjango(またはそのほかのことなら)アプリケーション)を再起動し、ソースが変更されたときにブラウザを更新する方法?これは= Railsガードを使用して、JSアプリでgrunt-contrib-watchと付随するlivereloadブラウザープラグインを使用します。Python DjangoなどのWebアプリではどうすればよいですか?
Djangoサーバーを
foreman start
これは私のProcfileです:
web: newrelic-admin run-program gunicorn app.wsgi
heroku/Newrelicのドキュメントまたは通常の提案
python manage.py runserver
runserver
メソッドは、.pyソースの変更時にサーバーを再起動しますが、ブラウザーは再起動せず、他のファイルを監視しません-私はそれと一緒にガードを実行できますが、次に、注意する必要がある2つのプロセスがあります。一方、うなり声や熊手は統一されたインターフェースを提供します。 Python開発者の間でこれを行うための推奨される方法は何ですか?
自動更新を実行するためにブラウザ拡張機能は必要ありません。 https://github.com/tjwalch/Django-livereload-server をご覧ください。
私はこれについてより広範な回答を https://stackoverflow.com/a/36961244/2950621 に投稿しました
これは、manage.pyコマンド(サーバー)を使用して.jsおよびその他の静的ファイルを監視することで機能します。サーバーはWebSocketを介してブラウザに信号を送信します。すべてのページにいくつかのクライアント側コードが挿入されています。挿入されたコードは信号に応答し、ブラウザを更新します。
これをインストールDjangoアプリ:
pip install Django-livesync
Django設定ファイルに次のようなものを追加します:
INSTALLED_APPS = (
'...',
'livesync',
'Django.contrib.staticfiles',
'...',
)
MIDDLEWARE_CLASSES = (
'livesync.core.middleware.DjangoLiveSyncMiddleware',
)
「livesync」を使用する場合は、「Django.contrib.staticfiles」の前に「livesync」を登録してください。
次に、開発サーバーを起動します。
python manage.py runserver
詳細はこちらをご覧ください: https://github.com/fabiogibson/Django-livesync
すべての明示的な更新に不満を感じている私は、これを自動化するために、FirefoxとChromeの両方のブラウザー拡張機能を作成しました。この拡張機能は、DjangoアプリをINSTALLED_APPSのアプリリストに追加することで機能します。詳細は github repo で確認できます。
リポジトリには完全なソースコードがありますが、拡張機能はそれぞれのWebストアでも入手できます。 「Django Auto Refresh」を検索してください。これらを使用して、アプリをプロジェクトのフォルダーにコピーし、INSTALLED_APPSを介してそれを含めるだけです。ピップセットアップスクリプトを追加したかったのですが、それを実行する時間を見つけられませんでした。
HTH。これは自己宣伝のように聞こえますか。
python manage.py runserver
の使用が最もよく使用されます。 Djangoは実際には認識していないため、ブラウザ自体を更新するには http://livejs.com/ のような別のツールを使用する必要があります。