Django 开发服务器在保存文件后不会自动重新加载
Django dev server does not automatically reload after saving files
几个月前我测试了 Django 3,它运行良好。在我更改文件(.html 和 .py)后,浏览器会自行刷新。
现在我在使用新创建的 Django 项目时遇到问题,在我保存在本地计算机上所做的更改后,浏览器不会自动重新加载。
OS: Windows 11
Editor: PyCharm / VS Code
Django 4.0.4
Python 3.10.4
目录结构
project/
├── project/
│ ├── ...
│ ├── settings.py
│ ├── urls.py
│ └── ...
├── first_app/
│ ├── ...
│ ├── urls.py
│ ├── views.y
│ └── ...
├── templates/
│ └── first_app/
│ └── index_view.html
└── manage.py
默认 settings.py 文件
....
INSTALLED_APPS = [
...
'first_app',
...
]
'DIRS': [BASE_DIR / 'templates']
....
project/urls.py
....
urlpatterns = [
path('', include('first_app.urls')
]
....
first_app/views.py
....
class IndexView(generic.TemplateView):
template_name = 'first_app/index_view.html'
...
first_app/urls.py
....
urlpatterns = [
path('', views.IndexView.as_view(), name='index')
]
....
templates/first_app/index_view.html
....
<p>
Test paragraph 1
</p>
....
我运行本地服务器用py manage.py runserver
当我将 index_view.html 中的 'paragraph' 更改为 'example' 并保存时,它应该会自动刷新浏览器并显示测试示例1。但是浏览器没有重新加载。
新建了几次Django项目,结果还是一样。
我错过了什么吗?
我已经尝试了以下问题的解决方案,但是 none 的解决方案对我有用。
谢谢。
更新:
py manage.py runserver
输出
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
May 25, 2022 - 21:40:08
Django version 4.0.4, using settings 'project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
(注意:我在评论中捕获了讨论的摘要——你最终找到了实际问题)
默认情况下,Django 只能在代码或模板更改时重新加载测试服务器,不能自动刷新浏览器。
如果您的浏览器为您以前的项目自行刷新页面,则可能是由您 IDE 发出的信号触发的,或者是由您页面中的某些 javascript 强制刷新的信号触发的.
原来你在以前的项目中安装了 third-party 包 django-browser-reload,它会在你的页面中注入一个小脚本,每当 Django 测试服务器重新加载时刷新页面。将该包添加到您的新项目将解决问题。
几个月前我测试了 Django 3,它运行良好。在我更改文件(.html 和 .py)后,浏览器会自行刷新。
现在我在使用新创建的 Django 项目时遇到问题,在我保存在本地计算机上所做的更改后,浏览器不会自动重新加载。
OS: Windows 11
Editor: PyCharm / VS Code
Django 4.0.4
Python 3.10.4
目录结构
project/
├── project/
│ ├── ...
│ ├── settings.py
│ ├── urls.py
│ └── ...
├── first_app/
│ ├── ...
│ ├── urls.py
│ ├── views.y
│ └── ...
├── templates/
│ └── first_app/
│ └── index_view.html
└── manage.py
默认 settings.py 文件
....
INSTALLED_APPS = [
...
'first_app',
...
]
'DIRS': [BASE_DIR / 'templates']
....
project/urls.py
....
urlpatterns = [
path('', include('first_app.urls')
]
....
first_app/views.py
....
class IndexView(generic.TemplateView):
template_name = 'first_app/index_view.html'
...
first_app/urls.py
....
urlpatterns = [
path('', views.IndexView.as_view(), name='index')
]
....
templates/first_app/index_view.html
....
<p>
Test paragraph 1
</p>
....
我运行本地服务器用py manage.py runserver
当我将 index_view.html 中的 'paragraph' 更改为 'example' 并保存时,它应该会自动刷新浏览器并显示测试示例1。但是浏览器没有重新加载。
新建了几次Django项目,结果还是一样。 我错过了什么吗?
我已经尝试了以下问题的解决方案,但是 none 的解决方案对我有用。
谢谢。
更新:
py manage.py runserver
输出
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
May 25, 2022 - 21:40:08
Django version 4.0.4, using settings 'project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
(注意:我在评论中捕获了讨论的摘要——你最终找到了实际问题)
默认情况下,Django 只能在代码或模板更改时重新加载测试服务器,不能自动刷新浏览器。
如果您的浏览器为您以前的项目自行刷新页面,则可能是由您 IDE 发出的信号触发的,或者是由您页面中的某些 javascript 强制刷新的信号触发的.
原来你在以前的项目中安装了 third-party 包 django-browser-reload,它会在你的页面中注入一个小脚本,每当 Django 测试服务器重新加载时刷新页面。将该包添加到您的新项目将解决问题。