首页 > 解决方案 > 我们在 django 中是否有一些包或模块,通过它我们可以在编辑代码时看到 django 中 html 文件的实时更改?

问题描述

因为我们在 Node 中有 lite-server 来监控文件的实时更改,所以在 Django 中我们有类似的东西吗?

标签: node.jsdjangonode-modules

解决方案


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

这个 django 应用程序添加了一个管理命令,该命令启动一个 livereload 服务器来监视所有静态文件和模板,以及一个自定义 runserver 命令,该命令在重新启动后开发服务器准备好时发出 livereload 请求。

安装

安装包:

$ pip install django-livereload-server

'django.contrib.staticfiles'如果使用,则在 INSTALLED_APPS 之前添加“livereload” :

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

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

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

或者对于 Django >= 1.10 的 MIDDLEWARE:

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 runserver 在浏览器的地址栏中通过执行以下操作访问您的 Web 应用程序:

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

自定义 默认情况下,模板和静态文件目录都被监视。

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

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

或使用静态文件目录:

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

您可以忽略文件扩展名:

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

可以添加额外的文件和/或路径来监视更改作为位置参数。默认情况下,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覆盖默认和设置文件指定的端口

推荐阅读