How to automatically reload Django when files change?

后端 未结 4 2013
醉酒成梦
醉酒成梦 2020-12-14 07:57

How to automatically monitor .py, .js and other source code files to restart a Django (or any other for that matter) application and refresh the browser when the source chan

相关标签:
4条回答
  • 2020-12-14 08:16

    Install this django app:

    pip install django-livesync
    

    On your django settings file add something like:

    INSTALLED_APPS = (
        '...',
        'livesync',
        'django.contrib.staticfiles',
        '...',
    )
    
    MIDDLEWARE_CLASSES = (
        'livesync.core.middleware.DjangoLiveSyncMiddleware',
    )
    

    Beware to register 'livesync' before 'django.contrib.staticfiles' if you are using it.

    Now, just start your development server:

    python manage.py runserver
    

    Check this out for more details: https://github.com/fabiogibson/django-livesync

    0 讨论(0)
  • 2020-12-14 08:18

    Frustrated with all the explicit refreshes, I created a browser extension, for both Firefox and Chrome, to automate this. The extension works with a Django app that you add to your app list in INSTALLED_APPS. You can find out more at the github repo.

    Though the repo has entire source code, the extensions are also available in the respective web store. Just search for 'Django Auto Refresh'. With these, you just need to copy the app into our project's folder and include it via INSTALLED_APPS. I wanted to add a pip setup script, but haven't found the time to do it.

    HTH. Apologies if this sounds like self promotion.

    0 讨论(0)
  • 2020-12-14 08:20

    You don't need a browser extension to accomplish auto refreshes. Take a look at https://github.com/tjwalch/django-livereload-server.

    I posted a more extensive answer about this at https://stackoverflow.com/a/36961244/2950621

    It works by using a manage.py command (server) to monitor your .js and other static files. The server sends a signal to the browser via websockets. There is some client-side code injected on every page. The injected code responds to the signal and refresh the browser.

    0 讨论(0)
  • 2020-12-14 08:32

    Using python manage.py runserver is what most use. You'll have to use another tool like: http://livejs.com/ to refresh the browser itself since Django really isn't aware of it.

    0 讨论(0)
提交回复
热议问题