【问题标题】:Is there a way in django to update the same page with the response without totally rendering it?django 有没有办法在不完全渲染的情况下使用响应更新同一页面?
【发布时间】:2021-01-19 15:28:56
【问题描述】:

在 django 中有没有办法用响应更新同一个页面而不完全渲染它。我正在尝试创建一个代码编辑器进行测试。但是当我返回结果时,我的内容被删除了。我知道这是因为我正在渲染页面。我需要保留内容。如何使用重定向来做到这一点?我包括了我使用的渲染语句和它的外观截图:

步骤:

  1. 处理发布请求
  2. 程序执行代码
  3. 将结果保存在名为“消息”的变量中。然后我用了

return render(request, 'editor.html', {'message': message})

我想将消息重定向到同一页面而不呈现新页面。

[提交前][1] [提交后][2] [1]:https://i.stack.imgur.com/BxoLU.png [2]:https://i.stack.imgur.com/uiEOU.png

任何帮助将不胜感激。谢谢。

【问题讨论】:

标签: django


【解决方案1】:

这是可能的。在前端使用ajax,在后端使用renderrender_to_stringDjango)。使用 ajax 你可以调用url(有/没有你想发送的数据),然后在views.py 中你可以做任何需要的事情和return render(request,'template.html, context)。然后在ajax中你有success: function (res) { $('#id_of_element').append(res)}。 ajax 中的这个函数会将接收到的响应(即呈现的 HTML 模板)附加到目标元素。

【讨论】:

    【解决方案2】:

    为此,您必须切换到称为“单页应用程序”的不同 Web 软件范例,这意味着后端和前端都是独立的功能性软件组件,而不是拥有一个“愚蠢”的 HTML 前端只显示后端呈现的内容。

    在常规 Web 应用程序中,前端由后端提供,其中包含将要显示的所有信息。在单页应用程序中,前端由独立于后端服务器的服务器提供服务,前端和后端通过后端提供的 API 进行交互。

    在这种架构下,前端组件负责从后端请求和提供数据,以及显示数据和获取用户交互,与后端交换数据的方法称为ajax ,这是一个异步请求。

    Web 浏览器唯一接受的语言是 javascript,但有许多框架和二级语言可以呈现 javascript 应用程序,例如 ReactAngularVue 等等。

    【讨论】:

      猜你喜欢
      • 2020-08-29
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 2021-01-11
      • 2010-09-26
      相关资源
      最近更新 更多