有的时候我们需要ajax中更新比较多的HTML内容,假如这些内容使用js进行拼接的话,将会非常痛苦。
我找到了两个方案
1.通过JsRender的方式
2.后端渲染这些局部的模板内容,发送到前端,前端更新前端html
这里我使用的方法2.
具体操作如下:
1.模板中需要更新的局部内容,单独抽离出一个html.例如:fragment.html
2.在py的view中,组织fragment.html所需展现的数据,使用使用 render_to_string 轻松地将需要渲染的fragment.html渲染成一个字符串。
from django.template.loader import render_to_string
html = render_to_string('fragment.html', {'data': data_json})
result = {'status': 1, 'msg': '','html': html}
return self.render_json_response(result)
3.将此字符串发送到客户端
4.客户端ajax中收到数据返回,使用如下方法将view端生成的html字符串插入到页面中
$('#fragment').html(arg.html)