是否可以在不刷新整个页面的情况下刷新包含的 Django 模板?

Posted

技术标签:

【中文标题】是否可以在不刷新整个页面的情况下刷新包含的 Django 模板?【英文标题】:Is it possible to refresh an included Django template without refreshing the whole page? 【发布时间】:2021-12-27 15:48:04 【问题描述】:

我正在努力解决与one 类似的问题。我有一个 Django 模板,其中包含一大堆带有 for 循环的较小模板,用于呈现页面的各个方面。我想知道最好的方法是更新各个小模板以在主模板中呈现它们,而无需刷新整个页面。例如,Django 是否支持某种类似 React 的虚拟 dom 来仅重新呈现单个子模板?

我知道模板是在服务器上计算的,然后生成的 html 被发送到客户端进行渲染,所以可能无法就地渲染模板?上面的帖子提到使用 AJAX 将数据传递到服务器以刷新特定模板,但在我开始修改页面之前,我想知道这是否适用于一次渲染多个模板,如果可以,是否有人可以指出我一个对此进行了详细解释的示例;我一直在寻找,但没有找到。

谢谢!

【问题讨论】:

【参考方案1】:

查看 htmx 和 django。有几个教程和文章。你当然可以使用 jQuery 和 Ajax,但是 htmx 使它更容易。

https://htmx.org/

https://www.mattlayman.com/blog/2021/how-to-htmx-django/

https://justdjango.com/blog/dynamic-forms-in-django-htmx

https://pythonrepo.com/repo/jacklinke-django-htmx-todo-list

【讨论】:

以上是关于是否可以在不刷新整个页面的情况下刷新包含的 Django 模板?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新整个页面的情况下刷新视图中的数据?有角度的

如何在不刷新整个页面的情况下更新 HTML 文档中的 php 变量?

如何在不重新加载整个页面的情况下刷新 div?

如何在不刷新整个页面的情况下让 Grunt/Watch/LiveReload 重新加载 Sass/CSS?

Angular - 材料表,是不是可以在不刷新整个表的情况下更新行?

在不刷新页面的情况下更新网站的 CSS