Django ajax小例
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小例的更多相关文章
- Django ajax的简单使用、自定义分页器
一. ajax初识 1. 前后端传输数据编码格式contentType 使用form表单向后端提交数据时,必须将form表单的method由默认的get改为post,如果提交的数据中包含文件,还要将f ...
- Django ajax MYSQL Highcharts<1>
Another small project with django/Ajax/Mysql/Highcharts. 看下效果图 - delivery dashboard .嘿嘿 是不是还蛮好看的. 废 ...
- linux 命令小例
xargs示例: ls |xargs -i mv {} /opt find示例: find -mtime +n -name “*.avi” -type f -exec rm {} \; find - ...
- Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例
Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...
- django ajax练习
这几天遇到了django ajax请求出错的问题,总结一下 前端js:我这里创建的是一个字典格式的数据,前端js收到字典之后也是要用字典的形式去解包后台传送过来的数据,比如我下面的写法:data['s ...
- 关于Django Ajax CSRF 认证
CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的 ...
- 第一个ajax小demo
第一个ajax小demo 文章来源:http://blog.csdn.net/magi1201/article/details/44569657
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- 使用libcurl下载文件小例
libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP……一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要 ...
随机推荐
- 【题解】Hankson 的趣味题
题目大意 已知正整数$a_{0}$.$a_{1}$.$b_{0}$.$b_{1}$($1 \leq a_{0}, a_{1}, b_{0}, b_{1} \leq 2 \times 10^{9}$), ...
- 19、NumPy——线性代数
NumPy 线性代数 NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明: 函数 描述 dot 两个数组的点积,即元素对应相乘. vdot 两个向量的 ...
- 1481:Maximum sum (前缀和+dp)
[题目描述] 对一个序列A={a1, a2,..., an}给出函数: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 <= s1 <= t1 < s2 <= ...
- 连接tomcat时,输入telnet localhost 8080后无法再次输入
初次接触服务器时,一般会在本地建立一个微型服务器,今天在使用Apache的tomcat时,为了在命令行下访问服务器中webapps下的自定义资源:首先打开命令行窗口,然后输入telnet localh ...
- 高级定时器-setTimeout()、setInterval()、链式setTimeout()
使用 setTimeout()和 setInterval()创建的定时器可以用于实现有趣且有用的功能.执行时机是不能保证的,因为在页面的生命周期中,不同时间可能有其他代码在控制 JavaScript ...
- TensorFlow学习——入门篇
本文主要通过一个简单的 Demo 介绍 TensorFlow 初级 API 的使用方法,因为自己也是初学者,因此本文的目的主要是引导刚接触 TensorFlow 或者 机器学习的同学,能够从第一步开始 ...
- elk系统生成请求数据测试承载量、宕机瓶颈shell
elk-gen-data.sh: #!/usr/bin/bash#----------------------------------------------------# Comment: to g ...
- ViewMode
一.ViewMode 实现使用场景-Model枚举的情景下, 注意:枚举声明在后台的时候,需要渲染界面,页面表格使用 Bootstrap Table插件-事先通过ajax 渲染(数据库读取值1.2.3 ...
- MAT in eclipse - memory analyzer
In Help > Install New Software..., enter the following update site URL: http://download.eclipse.o ...
- Linux系统理解以及Linux系统学习心得
原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Lin ...