如何将 Ajax() 中的值获取到 Django 模板中?

2024-05-06

我有一个 Django 模板,它显示从数据库接收的多个值并将其传递给模板,如下所示:

在views.py中

def test1(requests):
  requests.get...
  requests.get...
  requests.get...
  someQuery = "select id from table;"
  executeQ(someQuery)
  someQuery = "select id from table;"
  executeQ(someQuery)
  someQuery = "select id from table;"
  executeQ(someQuery)
  context = Data1, Data2, Data3
  return render_to_response('test1/index.html', context)

在模板/test1/index.html中

<html>
  ...... 

<table>
<th> header1 </th>
<th> header2 </th>
<th> header3 </th>

{% for row in context %}
 <td> row.1 </td>   
 <td> row.2 </td>
 <td> row.3 </td>
{% endfor %}

现在,我想要的是通过 Ajax 更新这些 row.1、row.2、row.3,而无需每次都重新加载页面。数据来自数据库。那么我可以在哪里以及如何放入一些 Ajax() 以便在 Django 中发生这种情况?


除了服务器端代码 (Python) 之外,您还需要添加一些客户端代码 (JavaScript)。

一种常见的方法是使用 jQueryajax() http://api.jquery.com/jquery.ajax/方法向服务器发送 ajax 请求,使用 django 应用程序处理此请求,将响应发送回客户端,然后操作 DOM。

所以你的客户端代码需要

  • send an XMLHttp请求 https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest到服务器(通常使用$.ajax() http://api.jquery.com/jquery.ajax/)
  • 修改 DOM,如果 请求成功(通常在$.ajax() http://api.jquery.com/jquery.ajax/成功回调 功能)
  • 您可以通过迭代 JSON 响应中的数据来创建表行所需的标记,然后使用 JavaScript/jQuery 将前一行替换为这个新标记(如图所示)here https://stackoverflow.com/questions/7517519/using-jquery-replace-one-row-in-table-with-a-new-one)

你的 django 应用程序需要

  • 匹配 a 中的 URL 模式URL调度程序 https://docs.djangoproject.com/en/dev/topics/http/urls/
  • 在关联视图中查询数据库
  • 将返回的数据序列化为JSON https://stackoverflow.com/questions/383692/what-is-json-and-why-would-i-use-it(你可以使用PythonJSON https://docs.python.org/2/library/json.html module)
  • 通过 a 返回此 JSONHttpResponse https://docs.djangoproject.com/en/dev/ref/request-response/#httpresponse-objects (这个问题 https://stackoverflow.com/questions/2428092/creating-a-json-response-using-django-and-python讨论 JSON 和 HttpResponses)

我也推荐你阅读这个优秀的答案 https://stackoverflow.com/questions/20306981/how-do-i-integrate-ajax-with-django-applications关于使用 django 和 ajax(包括 jQuery 的示例)$.ajax() http://api.jquery.com/jquery.ajax/方法)。

还值得一提的是,您不必在 ajax 步骤中使用 jQuery -您可以使用纯 JavaScript 生成 Ajax 请求 https://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery- 然而这是一种流行的方法并且非常用户友好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Ajax() 中的值获取到 Django 模板中? 的相关文章

随机推荐

  • 删除networkx有向图中入度和出度等于1的所有节点

    假设我在 NetworkX 中制作了一个有向图 import networkx as nx G nx DiGraph n A B C D E F H I J K L X Y Z e A Z Z B B Y Y C C G G H G I I
  • 算法:最大计数器

    我有以下问题 您有 N 个计数器 最初设置为 0 并且您对它们有两种可能的操作 increase X 计数器 X 加 1 max counter 所有计数器都设置为任何计数器的最大值 给出一个包含 M 个整数的非空零索引数组 A 该数组代表
  • 修改 Android 可绘制对象的颜色

    我希望能够使用相同的可绘制对象来表示两者 and 作为相同的可绘制对象 并根据某些编程值重新为可绘制对象着色 以便最终用户可以重新主题化界面 做这个的最好方式是什么 我已经尝试过 并重复使用了其中的图标 这个以前的S O 问题 https
  • SecurityApplicationGroupIdentifier 的应用程序组返回 nil

    我设置了一个应用程序组与我的 Today Extension 一起使用 我在主应用程序的目标和扩展程序的目标中添加了应用程序组 在开发人员门户的应用程序 ID 配置中 我启用了应用程序组 但由于某种原因FileManager default
  • 在 IEnumerable 上使用 Seq 函数 [重复]

    这个问题在这里已经有答案了 我正在尝试在 IEnumerable 上应用 Seq 函数 更具体地说 它是System Windows Forms HtmlElementCollection它实现了ICollection and IEnume
  • 加速度计和校准 - iPhone SDK

    我需要在 iPhone 游戏中使用加速计的功能 我只需通过倾斜设备来移动图像即可 然而 YouTube 上的大多数视频仅显示以某种方式反转的倾斜功能 而忘记包含校准 我希望用户将他们的设备校准到他们所处的任何位置 有谁知道我应该如何开始 我
  • 如何编写简单的运动跟踪代码?

    我正在制作一个带有伺服系统和彩弹枪的哨兵炮塔 需要实现实时运动跟踪以使枪射击任何移动的东西 我该如何编码 任何好的算法 书籍 教程 我想自己制作而不是使用预制的解决方案 带有卡尔曼滤波的 Lucas Kanade 是最基本的运动跟踪算法 然
  • 如何在 Vue 中动态创建的组件上获取更新的 $refs?

    我的组件数量取决于数组数量 因此当我向数组添加新项目时 它应该创建新组件 当创建新组件时 我想获得它的参考 这就是我有误解的地方 最后添加的组件是undefined当我试图得到它时 但是 如果我在一段时间后尝试获取参考 它就会起作用 我猜这
  • 添加动态复选框处理 CheckedChanged 事件 ASP.NET

    我想知道为什么事件没有触发以及如何找到哪个复选框控件触发了事件 chkList1 new CheckBox chkList1 Text row subj nme ToString chkList1 ID row subjid ToStrin
  • 如何在android中向服务器发送数据[重复]

    这个问题在这里已经有答案了 我想在我的应用程序中循环发送纬度和经度 这是使用 GPS 获取此参数的函数 private void showLocation Location location String latitude Latitude
  • C# 中的异常转换

    为什么我会得到一个InvalidCastException当尝试这样做时 throw ArgumentNullException new Exception errormessage null 这是以下函数的简化版本 public stat
  • 如何删除字符串中的所有前导零

    如果我有一个字符串 00020300504 00000234892839 000239074 我怎样才能去掉前导零 这样我就只有这个 20300504 234892839 239074 请注意 上面的数字是随机生成的 ltrim http
  • 为什么 VectorBuilder 位于 scala.collections.immutable 包中?

    VectorBuilder在同一源文件中定义为Vector Vector是不可变的并且在scala collections immutable包 因此构建器位于同一个包中 据我所知 CanBuildFrom uses a VectorBui
  • 在 C++ 中将 64 位值左移 64 位给出奇怪的结果[重复]

    这个问题在这里已经有答案了 可能的重复 64位移位问题 https stackoverflow com questions 1024968 64bit shift problem 我在 Windows 8 64 位上使用 Visual St
  • 按需require()

    假设我创建了一个库 libname其中包含一个主文件 main js以及偶尔与主对象一起使用的多个可选库文件 a js and b js 我创造index js文件包含以下内容 exports MainClass require main
  • 在 SQL 中,如何获取特定列中具有最大值的行?

    我有一个疑问 SELECT COUNT as votes a member id FROM ballots a WHERE ballot id 1 GROUP BY a member id 这会产生类似的结果 votes member id
  • void abort() 的声明抛出不同的异常

    我正在尝试写一些C 代码 使用 C API Festival并且在尝试编译时陷入困境 这是我调用的方式g g Wall pedantic I I speech tools include helloFestival C o h L fest
  • jQuery 获取属性

    我有一个 uid 属性 它的值在我的 body 标签上 document ready regFunct function regFunct alert body attr uid 但它说 未定义 有事吗 try document ready
  • 删除单元格中的重复条目 - R

    我在这里到处搜索 并尝试了重复和独特的功能来解决我要问的问题 但没有任何效果 假设我有一个名为 company 的数据框 其状态可变 当我折叠行时 我在状态变量观察之一中留下以下输出 PA PA PA TX TX 我怎样才能删除单元格内的重
  • 如何将 Ajax() 中的值获取到 Django 模板中?

    我有一个 Django 模板 它显示从数据库接收的多个值并将其传递给模板 如下所示 在views py中 def test1 requests requests get requests get requests get someQuery