Django Server 不影响视图更改

Posted

技术标签:

【中文标题】Django Server 不影响视图更改【英文标题】:Django Server Does not affect view changes 【发布时间】:2020-08-29 02:24:57 【问题描述】:

我在 Ubuntu 18.04 上使用 nginx 和 Gunicorn 来服务我的 Django 项目。

我正确配置了 ( like here ) 的所有内容并且运行良好,但我注意到我的视图更改不会影响我的服务器端,尽管应用了模板更改。

这是我的场景:


第一次提交:

service.views.py:

def showSudent(req):
  student = Student.objects.get(pk=1)
  return render(req, 'bio.html,  'student' : student )

模板/bio.html:

<h3> student.firstName </h3>

第二次提交:

service.views.py:

def showSudent(req):
  student = Student.objects.get(pk=1)
  return render(req, 'student.html,  'student' : student )

模板/bio.html:

<h3> student.lastName </h3>

我更改了视图和模板并将它们拉到服务器。

所以现在,django 仍在渲染 'bio.html' (但它必须渲染 'student.html' ),有趣的是它显示了 'student. '现在。

这意味着,django 看到了我的模板变化,但没有看到视图变化。

我反复检查服务器上的一切都正确,是的,所有代码在服务器上都是正确的,但不会影响任何视图更改,尽管我的所有模板更改都受到了影响。

我还重新启动了nginx,甚至多次重新启动服务器。

这有什么问题????

【问题讨论】:

【参考方案1】:

我觉得你需要重启 Gunicorn

sudo systemctl restart gunicorn

【讨论】:

已删除服务器,并重新配置所有内容。现在,是的,这可以正常工作。我仍然不知道为什么它不能与以前的服务器一起使用。我已经尝试了很多次,但没有在那里工作,但在新服务器上没问题。 我总是重启sudo systemctl restart gunicorn nginx【参考方案2】:

默认情况下 gunicorn 需要手动重启应用程序,还有另一个选项不适合使用 --reload 参数运行 gunicorn 的生产环境,例如:

$ gunicorn wsgi:application --reload

https://docs.gunicorn.org/en/19.0/settings.html#reload

【讨论】:

以上是关于Django Server 不影响视图更改的主要内容,如果未能解决你的问题,请参考以下文章

当同时运行 ng build --watch 和 ng serve 时,Angular 7 库 html-template 更改不会影响到应用程序

django admin:单独的只读视图和更改视图

如何在不影响先前视图的情况下更改 UINavigationBar 标题的名称?

更改导航栏项目内容而不影响视图内容

在不影响导航栏的情况下更改 NavigationController 的内容视图宽度

Django本身提供了runserver,为啥不用来部署