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内核都用到了它,本文主要 ...
随机推荐
- python常用模块---collections、time、random、os、sys、序列号模块
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...
- 17、NumPy——副本和视图
副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不在同一位置. 视图是数据的一个别称或引用,通过该别称或引用亦便可访问.操作原有数据,但原有数据不会产生拷贝.如果我们 ...
- 4、numpy——创建数组
1.普通创建——np.array() 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. import numpy as ...
- hdu5857 Median(模拟)
Median Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- tornado ioloop current和instance的一些区别
import tornado.ioloop # 此时_current没有instance print dir(tornado.ioloop.IOLoop._current) # 通过instance ...
- ES2015箭头函数与普通函数对比理解
直接返回表达式 var odds = evens.map(v => v + 1); var nums = evens.map((v, i) => v + i); var odds = ev ...
- geometry_msgs的ros message 类型赋值
test_custom_particles.cpp // // Created by gary on 2019/8/27. // #include <ros/ros.h> #include ...
- java 两个对象共使一个方法
- ltp-ddt smp_basic
SMP_S_FUNC_DUAL_CORE source functions.sh; cmd="stress-ng --matrix 4 -t 10s --perf --matrix-size ...
- ARC093F Dark Horse 容斥原理+DP
题目传送门 https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 由于不论 \(1\) 在哪个位置,一轮轮下来,基本上过程都是相似的,所以不妨假设 ...