提问者:小点点

我们在django中是否有一些包或模块,通过这些包或模块我们可以在编辑代码时看到django中html文件的实时更改?


由于我们在Node中有lite-server来监视我们文件的实时更改,我们在Django中有类似的东西吗?


共1个答案

匿名用户

是的。有一种方法可以实时重新加载(实时服务器)。

这个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重写默认端口和设置文件指定端口