node.js - 我们在 django 中是否有一些包或模块,通过它我们可以在编辑代码时看到 django 中 html 文件的实时更改?
问题描述
因为我们在 Node 中有 lite-server 来监控文件的实时更改,所以在 Django 中我们有类似的东西吗?
解决方案
是的,有一种方法可以实时重新加载(实时服务器)。
这个 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
覆盖默认和设置文件指定的端口
推荐阅读
- python - 根据行号提取行
- github - Git启动克隆Visual Studio 2019永远挂起
- mysql - 从用户 sql 获取所有无联系人
- html - 中心子 div 与父 div 内的表
- javascript - Puppeteer 并通过多个用户循环流程
- reactjs - 在 React 功能组件中重构 this 的使用?
- java - Java Android 启动 Tor 进程端口 9150
- python - RegExp 删除行包含 NULL
- java - 应用程序部署在两个节点上时如何仅读取一次文件
- javascript - React.js this.props.user 在 componentDidMount 中始终为 null