我在Django模板中运行了以下AJAX脚本:
function create_table() {
$.ajax({
method: "GET",
url: "/api/data/",
success: function(data){
console.log('button clicked')
console.log(data)
//$('#table').html('<div class="test">' + data['Name'] +'</div>');
//$('#table').load('table_to_load.html');
},
error: function(error_data){
console.log("errorrr")
console.log(error_data)
}
})
}
document.getElementById("create_table").onclick = function() {
create_table();
return false;
}
此脚本的目的是在按下AJAX调用获取的字典数据填充按钮时创建HTML表。
AJAX调用正确收集数据,但是,我不知道如何插入表格。
我应该在AJAX调用中的纯Javascript / jQuery中编写表格HTML吗?或者可能加载预先准备好的HTML(如何在调用中引用其目录?)?
我首选的方法是在Django的模板标记语言中为表格编写模板,并以某种方式在其中引用AJAX提取的数据。类似的东西:
<table>
<tr>
<th>dictionary key</th>
<th>dictionary value</th>
</tr>
{% for key, value in dictionary.items %}
<tr>
<td>{{ key }}</td>
<td>
<a href="{{ value }}">{{ value }}</a>
</td>
</tr>
{% endfor %}
</table>
但我不确定它是否可能。
答案 0 :(得分:0)
你可以采取任何一种方式,但你似乎想要以两种方式进行。
您可以使用ajax进行调用并获取一些json数据,然后使用该json对象构建html字符串并使用jquery将该html插入页面中的正确位置 - 这样的方式没有任何问题imo虽然我个人并不喜欢将html语句拼接在一起(主要是因为对于复杂的页面来说,很难设计它们并以这种方式调试它们,但对于小块来说它可以)。
另一种方法是让jquery调用django视图(通过你定义的url),让django视图进行数据库调用并使用项目中已经存在的模板作为html doc,然后渲染该模板和任何其他django页面一样的数据。该视图将返回包含html的httpresponse,然后jquery将像以前一样将该html插入到页面中。