【问题标题】:Getting database info for a django template with ajax使用 ajax 获取 django 模板的数据库信息
【发布时间】:2016-08-08 10:16:20
【问题描述】:

我对 django 和 ajax 很陌生,我正在尝试执行以下操作:

  • 在我的 html 中,我有一些“选择”元素,每个“选择”都有一个名为“查看”的按钮。

  • 当我单击“视图”时,我想根据“选择”中选择的选项检索数据库信息,该选项对应于单击的“视图”。这应该由ajax完成,我想在html中显示一些所说的数据库信息(显然不刷新页面)。

我知道我应该在按钮上添加一个 onClick 事件,并在那里通过 ajax 发送选定的选项信息,我感到困惑的是:

  • 在这种情况下,我应该使用 GET 还是 POST?为什么?

  • 我使用 AJAX 联系什么 URL?我是否应该创建一个仅用于此功能的特殊 URL(并且用户可能不会以正常方式访问)?

  • 一旦我已经有了 AJAX 调用,我应该如何将数据库信息返回到模板?我会假设这是在与我将调用的 URL 对应的视图中以某种方式完成的?我是否以某种方式在调用 AJAX 的 javascript 中使用“成功”函数?

我在这里找到的最相关的问题是Django: Get database object value in template using Ajax,但这并不能消除我的所有疑虑。

【问题讨论】:

    标签: html ajax django database templates


    【解决方案1】:

    对于这个特定的用例,您应该使用 GET。如果您使用 jQuery,这让这些事情变得非常简单,您可以使用 $.GET()

    创建一个返回 JsonResponse 的视图并与 Ajax 联系。

    是的。您将在 jQuery GET 中使用成功函数,响应将包含来自 Django 的 JSON 序列化输出。

    您可以自己构建 JSON 对象,也可以使用 Django serializer

    【讨论】:

    • 我明白了。现在,在我将我想要的内容从数据库传递回成功函数之后,我如何将此输出包含在模板中?假设我希望我的页面显示包含这些数据的表格?
    • 使用 javascript 创建表格,然后将其附加到 html。 $('#yourdivcontainer').html(yourGeneratedTable);
    猜你喜欢
    • 2021-02-26
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多