django使用使用ajax 与后台进行交互与后台进行交互
需求:点击datatable 的一行diaoyon数据,显示一个模态框,模态框显示该行的全部属性
解决方法: 点击datatable 这一行后,首先构造一个模态框 而后利用ajax 将行的某个属性传回后台 后台d调用数据库将属性全
部查询后 用json 形式发送给前台 前台的模态框进行渲染:
实现步骤:
1、构建一个模态框:具体使用方法可以在网上找:https://www.w3h5.com/post/74.html
创建模态框(创建模态框(Modal))
2、将表格中的部分数据发送到前端:
在进行页面跳转时 csrf 协议 即ajaxsetup 是必须要加上的
$.ajaxSetup({
data: {
csrfmiddlewaretoken: '{{ csrf_token }}'
},
});
下面是ajax 主要部分
url: 将要跳转至的url 这条url 的主要目的是为了执行 view 中的各种操作(这条url 的模式是url->view 而非普通的url->view->templates)
data :将要发送给后端(即url对应的view) 的数据 通过这个数据我们就可以对数据库进行操作
datatype json : 数据是以json形式进行传输的
type: 对后端进行post 请求
success: 前端将数据发送给后端 后端经过数据处理后 发送给前端 即整个ajax 操作成功时候应该做的事情
$.ajax({
url: '/modal_ajax/',
data: {
host: table.row('.selected').data()['de_id'] },
dataType: "json",
type: 'post',
success: function (data) {
// alert(data['host'])
}
})
3、构建上一步所说的url
# 2020 3 10 孔格添加 用来 进行模态框的ajax 传值
url('modal_ajax/', rawview.modal_ajax)
4、在上一步url 对应 的view 中进行操作
里面需要注意的是 :由于我们上一步是用ajax 进行操作的 传回的请求是post 所以必须有
request.is_ajax()
利用data = request.POST 得到前端的数据
然后将前端的值进行处理 然后发送给前端 数据类型一定要是json
对于django 中的model 对象其实有多种操作方式将其转化为json 例:
# 将models 转化为 字典
dict_drug = model_to_dict(modal_drug)
# 将字典转化为json 对象
json_drug = serializers.serialize("json", dict_drug)
评论0