urls.py:

url(r'^ajaxstudents/$', views.ajaxstudents),
url(r'^getstudentsinfo/$', views.getstudentsinfo),

views.py:

def ajaxstudents(request):
return render(request,'myApp/ajaxstudents.html')
def getstudentsinfo(request):
stus = Students.stuObj.all()
list = []
for stu in stus:
list.append([stu.sname,stu.sage])
return JsonResponse({"students":list}) 


ajaxstudents.html:

<script type="text/javascript" src="{% static 'myApp/js/jquery-1.11.3.js' %}"></script>
<h1>ajax请求学生信息</h1>
<button id="btn">显示学生信息</button>
<script type="text/javascript">
var btn = document.getElementById("btn")
btn.onclick = function(){
$.ajax({
type:"get",
url:"/sunck/getstudentsinfo/",
dataType:"json",
success:function(data,textStatus){
var d = data["students"]
for(var i = 0; i < d.length; i++){
document.write('<p>'+d[i]+'</p>')
}
}
})
}
</script>

1.访问http://127.0.0.1:8000/sunck/ajaxstudents/(主路由里设置了一个^sunck/),显示

2.然后“显示学生信息”绑定了一个点击事件,该事件就是发送一个ajax请求,发送的路径是/sunck/getstudentsinfo/,请求方式是get,因为是“拿信息”

3.到了/sunck/getstudentsinfo/路径后,执行相应的视图函数getstudentsinfo,该函数的功能就是把所有学生的姓名和年龄放到一个列表里,然后用JsonResponse类把该列表返回到ajax(return JsonResponse({"students":list}))

4.返回到ajax后是ajax里的data拿到数据,data["students"]就相当于视图函数里的那个列表了,然后可以循环打印数据

笔记:

HttpResponse和JsonResponse区别:

简单点就是,HttpResponse  返回的是一个字符串类型的数据,JsonResponse 返回的是一个json格式的数据

#如果HttpResponse返回,ajax里还需要进行json解析
#views.py
return HttpResponse(json.dumps({"msg":"ok!"})) #index.html
var data=json.parse(data)
console.log(data.msg);
#如果JsonReponse返回,两边都不需要进行json的序列化与反序列化,ajax接受的直接是一个对象
#views.pyreturn JsonResponse({"msg":"ok!"}) #index.html
console.log(data.msg);

最新文章

  1. SSH-Hibernate+Struts2+Spring的股票项目整合
  2. Visual Studio 2010编译时总是提示&quot;调用目标发生了异常&quot;的解决
  3. some things
  4. 文件夹管理工具(MVC+zTree+layer)(附源码)
  5. android 平台搭建
  6. POJ 1276 Cash Machine
  7. angularjs探秘&lt;一&gt;
  8. android图片加水印,文字
  9. Shiro 加密helloWorld
  10. 【java线程】的wait、sleep、join、yied
  11. 常用ASCII码对照表
  12. C# show和showdialog区别
  13. java里获取uuid
  14. Mydumper介绍
  15. WP8.1学习系列(第一章)——添加应用栏
  16. SharePoint 企业搜索-PowerShell
  17. JS 响应式布局
  18. GOEXIF读取和写入EXIF信息
  19. Swift 开发语法
  20. Jenkins+git+Nginx

热门文章

  1. uploadify多图片和文件上传网站应用
  2. 最小生成树,Prim算法实现
  3. jquery实现全选,反选,取消的操作
  4. Spring Data Redis实战之提供RedisTemplate
  5. 20180119-01-RACSignal的基础
  6. rpmbuild - 构建 RPM 打包
  7. Linux就该这么学10学习笔记
  8. Git--04 Github使用
  9. Sass函数:Introspection 函数 -type-of()
  10. 【抓包工具之Fiddler】增加IP列;session高亮