我一直在尝试了解在Django中执行Ajax的最佳方法是什么。通过四处阅读,我了解到常见的过程是:
使用一些JavaScript库(例如jQuery)来制定您的Ajax调用,在Django中设置URL模式以捕获该调用并将其传递给视图函数
在Python视图函数中,检索您感兴趣的对象并将其以JSON格式或类似格式发送回客户端(通过使用内置的序列化器模块或simplejson)
在JavaScript中定义一个回调函数,该函数接收JSON数据并进行解析,以便创建需要显示的HTML。最后,JavaScript脚本将HTML放置在应保留的位置。
现在,我仍然不明白的是Django模板如何与所有这些相关?显然,我们根本没有利用模板的功能。理想情况下,我认为最好传回JSON对象和模板名称,以便可以迭代数据并创建HTML块。但是也许我在这里完全错了...
我发现朝这个方向发展的唯一资源是此代码段(769)但我还没有尝试过。显然,在这种情况下将要发生的所有结果HTML都是在服务器端创建的,然后传递给客户端。JavaScript回调函数只需要在正确的位置显示它。
这会导致性能问题吗?如果没有,即使不使用上面的代码段,为什么不使用Python而不是前端直接在后端格式化HTML?
非常感谢!