Python 从JS Django模板重新呈现页面

Python 从JS Django模板重新呈现页面,python,django,Python,Django,我有一个端点,用于呈现包含电影列表的模板 在页面上,有一个名为“添加电影”的按钮和一个用于添加电影名称的输入字段。按下按钮后,我想将同名电影添加到电影列表中,然后重新呈现页面 现在,我在JS中完成这一切,并发出一个获取请求,但我不能像这样重新呈现页面 如何实现我想要的效果?您正在服务器端渲染,因此为了重新渲染,需要将数据发送回服务器。一种方法是创建一个表单元素,当您单击该按钮时,该表单元素将数据发布到同一页面。然后在服务器端,获取输入的电影,将其添加到其他电影中,然后可以重新渲染并返回 此答案试

我有一个端点,用于呈现包含电影列表的模板

在页面上,有一个名为“添加电影”的按钮和一个用于添加电影名称的输入字段。按下按钮后,我想将同名电影添加到电影列表中,然后重新呈现页面

现在,我在JS中完成这一切,并发出一个获取请求,但我不能像这样重新呈现页面


如何实现我想要的效果?

您正在服务器端渲染,因此为了重新渲染,需要将数据发送回服务器。一种方法是创建一个表单元素,当您单击该按钮时,该表单元素将数据发布到同一页面。然后在服务器端,获取输入的电影,将其添加到其他电影中,然后可以重新渲染并返回


此答案试图提供一般性指导,因为您的问题是一般性的。

您可以更新页面,而无需使用AJAX调用重新加载/重新呈现整个网页,也无需更改HTML DOM中的特定元素。您可以在原始Javascript中执行此操作,也可以使用一些JS库来简化代码。这里有一些你可以考虑的图书馆,如果你有一个庞大的项目,这样的要求可能会再次出现:

  • jQuery


您好,这很有意义,我如何使表单转到特定端点?假设该页面正在/movies上呈现,这是一个名为movies()的views函数。表单是否也会转到movies()或我是否可以将其转到另一个端点/函数。这个问题有意义吗?这是最普遍的做法吗?还是按照马提亚斯说的方式做更好?谢谢你的帮助,两个都可以。根据Matthias的回答,整个页面将重新加载,因此用户将看到轻微的口吃和页面刷新(如果页面大小较大,刷新可能需要一段时间)。使用我列出的AJAX方法之一,您可以“更新”现有页面上的单个
元素,而无需再次刷新整个页面。我明白了。但我也必须更新我的数据库。。。我如何从js中做到这一点?只是用FetchAPI发出post请求?是的,Ajax请求基本上也会调用服务器上的api端点来获取一些数据,就像任何其他服务器请求一样。您可以在该请求中更新数据库。这里有很多要解释的你可以读一下