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

Do we have some package or module in django through which we can see real-time changes of our html files in django as we edit the code?

我们在 Node 中有 lite-server 来监控我们文件的实时变化,我们在 Django 中有类似的东西吗?

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

This django app 添加了一个管理命令,用于启动 livereload 服务器监视所有静态文件和模板,以及一个自定义 runserver 命令,用于在开发服务器重启后准备就绪时发出 livereload 请求。

安装

安装包:

$ pip install django-livereload-server

将'livereload'添加到INSTALLED_APPS,如果使用'django.contrib.staticfiles'之前:

INSTALLED_APPS = (
    ...
    'livereload',
    ...
)

'livereload.middleware.LiveReloadScript'添加到MIDDLEWARE_CLASSES(可能在最后):

MIDDLEWARE_CLASSES = (
    ...
    'livereload.middleware.LiveReloadScript',
)

或 Django >= 1.10 的中间件:

MIDDLEWARE = [
    ...
    'livereload.middleware.LiveReloadScript',
]

如果 DEBUG 设置打开,这会将 livereload.js 脚本注入您的网页。

配置 如果您需要 livereload 服务器使用与默认 127.0.0.1 和 35729 不同的主机和端口,请通过在 settings.py.

中设置 LIVERELOAD_HOST 和 LIVERELOAD_PORT 来指定它们

用法 启动 livereload 服务器:

$ python manage.py livereload

保留 livereload 服务器 运行。

照常启动 django 开发服务器(在另一个控制台中):

$ python manage.py 运行服务器 在浏览器的地址栏中,通过执行以下操作访问您的网络应用程序:

127.0.0.1:8000 或 localhost:8000 现在每次您在编辑器中点击保存时,django-development-server/livereload-server 会自动更新静态文件

自定义 默认情况下,template 和 staticfiles 目录都会被监视。

您可以使用以下方法忽略模板目录:

$ ./manage.py livereload --ignore-template-dirs

或静态文件目录使用:

$ ./manage.py livereload --ignore-static-dirs

您可以忽略文件扩展名:

$ ./manage.py livereload --ignore-file-extensions=.less,.scss

额外文件 and/or 可以添加用于监视更改的路径作为位置参数。默认情况下,livereload 服务器监视静态文件查找器和模板加载器找到的文件。

$ 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 功能
  • --livereload-host 覆盖默认和设置文件指定的主机地址
  • --livereload-port 覆盖默认和设置文件指定的端口