Django中templates用Ajax接收json資料用html展示
阿新 • • 發佈:2021-01-18
我這裡用Ajax接收資料展示
views
def index(request):
if request.method =='POST':
deploy = DeployInfoHelper(admin_ip, admin_port, admin_dbname, admin_dbuser, admin_dbpassword)
json_info = deploy.get_deploy_info()
return HttpResponse(json.dumps(json_info), content_type= "application/json")
return render(request,'deploy_info.html')
注意
HttpResponse與JsonResponse都是django中後臺給前臺返回資料的方法,
並且他們最後走的都是http協議
不同的方法還是有點區別的,我們後臺給前臺返回資料的時候需要通過json格式的字串進行傳輸,因為前後臺都有對json格式字串進行操作的方式
他們的區別就是HttpResponse需要我們自己前後臺進行序列化與反序列化
而JsonResponse則把序列化和反序列化封裝了起來,我們直接傳入可序列化的字串,在前臺就能收到對應的資料
return JsonResponse(json_info,safe=False)
這裡需要加一個False,不然有問題
template
<body>
<dev id="table"></dev>
<script src="https://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
$.ajax({
url:"/",
type: "POST",
dataType: "json",
success:function (ret) {
console.log(ret)
let htm = "";
htm += "<table class=\"deploy_info\" border=\"1px\" width=\"100%\">\n" +
"<tr>\n" +
"\t<td id=\"deploy_id\">id</td>\n" +
"\t<td id=\"deploy_date\">上線日期</td>\n" +
"\t<td id=\"deploy_real_date\">上線實際日期</td>\n" +
"\t<td id=\"deploy_project\">上線專案</td>\n" +
"\t<td id=\"deploy_project_detail\">上線專案詳細內容</td>\n" +
"\t<td id=\"deploy_version\">上線版本</td>\n" +
"\t<td id=\"deploy_result\">上線結果</td>\n" +
"\t<td id=\"deploy_dev\">開發人員</td>\n" +
"\t<td id=\"deploy_test\">測試人員</td>\n" +
"\t<td id=\"deploy_ops\">運維人員</td>\n" +
" <td id=\"deploy_remark\">備註</td>";
for (let i = 0; i < ret.length; i++) {
htm += '<tr><td>'+ret[i]['id']+'</td>'
+ '<td>'+ret[i]['deploy_date']+'</td>'
+ '<td>'+ret[i]['deploy_real_date']+'</td>'
+ '<td>'+ret[i]['deploy_project']+'</td>'
+ '<td>'+ret[i]['deploy_project_detail']+'</td>'
+ '<td>'+ret[i]['deploy_version']+'</td>'
+ '<td>'+ret[i]['deploy_result']+'</td>'
+ '<td>'+ret[i]['deploy_dev']+'</td>'
+ '<td>'+ret[i]['deploy_test']+'</td>'
+ '<td>'+ret[i]['deploy_ops']+'</td>'
+ '<td>'+ret[i]['remarks']+'</td>';
}
htm += '</tr></table>';
$('#table').append(htm)
}
})
</script>
</body>
大概解釋一下Ajax前面一樣的,就是ret這個是從後端返回的json資料,寫到console.log,我們可以在瀏覽器裡看從後端是否接收過來
然後就是自己拼html表格了.這個就考驗html,css,jquery這些了,這些前端技能,我的水平很LOW
網上有那些可以幫你生成表格模板的網站
最後給一個完成的樣子