有的时候我们需要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)
10-28 14:17