几个月前我测试了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']
....
型
项目/urls.py
....
urlpatterns = [
path('', include('first_app.urls')
]
....
型
第一个_app/views.py
....
class IndexView(generic.TemplateView):
template_name = 'first_app/index_view.html'
...
型
第一个_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“并保存后,应该会自动刷新浏览器,显示Test example 1,但浏览器没有重新加载。
我已经创建了几次新的Django项目,结果仍然是一样的。我错过了什么吗?
我已经尝试了以下问题的解决方案,但没有一个解决方案对我有效。
[https://stackoverflow.com/questions/68974685/why-isnt-the-django-dev-server-reloading/71618373](https://stackoverflow.com/questions/68974685/why-isnt-the-django-dev-server-reloading/71618373%5C) Django server not reloading on file changes的数据库
更新: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.
型
1条答案
按热度按时间jtoj6r0c1#
(Note:我在评论中捕捉了讨论的摘要--你最终找到了实际问题)
默认情况下,Django只能在代码或模板更改时重新加载测试服务器,它不能自动刷新浏览器。
如果您的浏览器正在为您以前的项目自行刷新页面,那么它可能是由IDE发出的信号触发的,或者是由页面中的某些JavaScript强制刷新。
原来你在之前的项目中安装了第三方软件包django-browser-reload,它会在你的页面中注入一个小脚本,每当Django测试服务器重新加载时都会刷新页面。将该软件包添加到新项目中可以解决这个问题。