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);

Django ajax小例的更多相关文章

  1. Django ajax的简单使用、自定义分页器

    一. ajax初识 1. 前后端传输数据编码格式contentType 使用form表单向后端提交数据时,必须将form表单的method由默认的get改为post,如果提交的数据中包含文件,还要将f ...

  2. Django ajax MYSQL Highcharts<1>

    Another small project with django/Ajax/Mysql/Highcharts. 看下效果图  - delivery dashboard .嘿嘿 是不是还蛮好看的. 废 ...

  3. linux 命令小例

    xargs示例: ls |xargs -i mv {}  /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ...

  4. Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例

    Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...

  5. django ajax练习

    这几天遇到了django ajax请求出错的问题,总结一下 前端js:我这里创建的是一个字典格式的数据,前端js收到字典之后也是要用字典的形式去解包后台传送过来的数据,比如我下面的写法:data['s ...

  6. 关于Django Ajax CSRF 认证

    CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的 ...

  7. 第一个ajax小demo

    第一个ajax小demo 文章来源:http://blog.csdn.net/magi1201/article/details/44569657

  8. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  9. 使用libcurl下载文件小例

    libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...

随机推荐

  1. 【freemarker】渲染列表一系列操作

    数据模型: public class AddressVo implements Serializable { private static final long serialVersionUID = ...

  2. azkaban简单使用

    步骤 1.通过web服务器创建项目,项目名称和描述都是必须填的2.上传zip包 job定义 1.简单的job一个job就是一个properties文件,只不过文件是以.job结尾,文件里面定义了job ...

  3. Checklist: 2019 05.01 ~ 06.30

    Golang Lessons learned porting 50k loc from Java to Go Five things that make Go fast Simple techniqu ...

  4. .NET面试题集锦②

    一.前言部分 文中的问题及答案多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.实现产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复. ]; ArrayList my ...

  5. boost serialization

    Archive An archive is a sequence of bytes that represented serialized C++ objects. Objects can be ad ...

  6. 每天一个linux命令:tail(16)

    tail tail命令用于输入文件中的尾部内容,不指定文件时,作为输入信息进行处理.tail命令默认在屏幕上显示指定文件的末尾10行.命令从指定点开始将文件写到标准输出,使用tail命令的-f选项可以 ...

  7. 阿里云HPC助力新制造 | 上汽仿真计算云SSCC

    随着上汽集团与阿里云的合作开展,阿里云各项技术逐步深入到上汽汽车研发领域的核心业务实现落地.其中上海汽车集团股份有限公司乘用车分公司(以下简称上汽乘用车)与阿里云共建的仿真计算混合云就是新制造产业升级 ...

  8. shell脚本学习(3)sed替换

    1 sed 替换   1格式: 's/原字符串/新字符串/'   输入源   2正确参考: sed ’s/as/AS/' do.txt 改变字符串as为AS,不会改输入源的文件. 匹配每行第一次匹配的 ...

  9. hdu 5120 Intersection (圆环面积相交->圆面积相交)

    Problem Description Matt is a big fan of logo design. Recently he falls in love with logo made up by ...

  10. 在python3.7下怎么安装matplotlib与numpy

    一.安装matplotlib 1.在Matplotlib的官网下载电脑对应的版本,网址为:https://pypi.org/project/matplotlib/#files 2.将在下载的.whl文 ...