【发布时间】:2010-10-27 07:15:04
【问题描述】:
我一直试图了解在Django 中执行Ajax 的最佳方式是什么。通过阅读这里和那里的东西,我收集到常见的过程是:
使用一些 JavaScript 库(例如 jQuery)制定您的 Ajax 调用,在 Django 中设置一个 URL 模式来捕获调用并将其传递给视图函数
-
在Python 视图函数中检索您感兴趣的对象并以 JSON 格式或类似格式将它们发送回客户端(通过使用内置的序列化模块或simplejson)
在 JavaScript 中定义一个回调函数,接收 JSON 数据并解析它们,以便创建需要显示的任何 HTML。最后,JavaScript 脚本将 HTML 放在它应该保留的任何位置。
现在,我仍然不明白Django 模板与所有这些有什么关系? 显然,我们根本没有利用模板的力量。 理想情况下,我认为传回 JSON 对象和模板名称会很好,这样可以迭代数据并创建 HTML 块。但也许我在这里完全错了......
我发现的唯一资源是this snippet (769),但我还没有尝试过。 显然,在这种情况下将发生的事情是所有生成的 HTML 都是在服务器端创建的,然后传递给客户端。 JavaScript 回调函数只需将其显示在正确的位置即可。
这会导致性能问题吗?如果不是,即使不使用上面的 sn -p,为什么不直接在后端使用 Python 而不是前端格式化 HTML?
非常感谢!
更新:请使用snippet 942,因为它是上述版本的增强版!我发现这样的继承支持效果更好..
【问题讨论】:
标签: python ajax django json templates