由于我们在Node中有lite-server来监视我们文件的实时更改,我们在Django中有类似的东西吗?
是的。有一种方法可以实时重新加载(实时服务器)。
这个django应用程序添加了一个管理命令,用于启动一个livereload服务器,监视所有静态文件和模板,还添加了一个自定义runserver命令,用于在开发服务器重新启动后准备好时发出livereload请求。
安装
安装程序包:
$ pip install django-livereload-server
将'livereload'添加到INSTALLED_APPS中,在'django.contrib.staticfiles'
之前(如果使用):
INSTALLED_APPS = (
...
'livereload',
...
)
将'LivereLoad.MiddleWare.LivereLoadScript'
添加到MiddleWare_Class(可能在结尾处):
MIDDLEWARE_CLASSES = (
...
'livereload.middleware.LiveReloadScript',
)
或Django>=1.10的中间件:
MIDDLEWARE = [
...
'livereload.middleware.LiveReloadScript',
]
如果调试设置是打开的,这将把livereload.js脚本注入到您的网页中。
配置如果您需要livereload服务器使用与默认的127.0.0.1和35729不同的主机和端口,请通过在settings.py中设置LIVERELOAD_HOST和LIVERELOAD_PORT来指定它们。
用法启动livereload服务器:
$ python manage.py livereload
保持肝脏负载服务器运行。
像往常一样启动django开发服务器(在另一个控制台中):
$python manage.py runserver在浏览器的地址栏中通过以下操作访问您的web应用程序:
127.0.0.1:8000或localhost:8000现在,每次在编辑器中单击save,django-development-server/livereload-server都会自动更新静态文件
定制默认情况下,template和staticfiles目录都被监视。
可以使用以下方法忽略模板目录:
$ ./manage.py livereload --ignore-template-dirs
或staticfiles目录,使用:
$ ./manage.py livereload --ignore-static-dirs
您可以忽略文件扩展名:
$ ./manage.py livereload --ignore-file-extensions=.less,.scss
可以添加用于监视更改的额外文件和/或路径作为位置参数。 默认情况下,livereload服务器监视由staticfiles查找器和模板加载器找到的文件。
$ python manage.py livereload path/to/my-extra-directory/
这将从被--ignore-template-dirs和--ignore-static-dirs忽略的路径中排除。
主机和端口可以用--Host和--port选项重写。
$ python manage.py livereload --host=myhost.com --port=9090
runserver命令python manage.py runserver还接受三个附加选项:
--nolivereload
禁用肝脏装载功能--livereload-host
重写默认和设置文件指定的主机地址--livereload-port
重写默认端口和设置文件指定端口