python Ajax的使用
转自:http://www.cnblogs.com/python-study/p/6060530.html
1.使用Ajax在后台传递参数的示例
要使用Ajax传递参数,需要使用jquery,使用jquery需要注意以下几点。
1.建立static的目录,将jquery导入

2.在项目s13day18_django的settings配置中,指定jquery的目录,同时注释掉CSRF
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
# 'django.middleware.csrf.CsrfViewMiddleware',
3.在app01下面,指定路由关系

urlpatterns = [
# url(r'^index/(\d+)/', views.index),
# url(r'^detail/(\d+)/',views.detail),
# url(r'^template/',views.template),
url(r'^extend/',views.extend),
url(r'^assets/',views.assets),
url(r'^userinfo/',views.userinfo),
url(r'^ajax_demo/',views.ajax_demo),
]

4.在app01下面,定义ajax_demo函数

def ajax_demo(request):
if request.method == 'POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd')
print(user,pwd)
if user == '111' and pwd == '222':
return HttpResponse('1')
else:
return HttpResponse('2')
return render(request,'ajax_demo.html')

5.在templates中,添加关于ajax_demo的HTML信息

<body>
<div>
<p>用户名: <input type="text" id="username" /></p>
</div>
<div>
<p>密码: <input type="password" id="pwd" /></p>
</div>
<input type="button" value="提交" onclick="SubmitForm();"/> <script src="/static/jquery-1.12.4.js"></script>
<script>
function SubmitForm(){
$.ajax({
url:'/web/ajax_demo/',
type:'POST',
data:{'user':$('#username').val(),'pwd':$('#pwd').val()},
success:function(data){
if(data == '1'){
location.href="http://www.baidu.com";
}
else{
alert("用户名或密码错误")
}
}
})
}
</script>
</body>

整个执行的过程是,ajax传递参数给了函数ajax_demo,函数获取到用户键入的值,然后通过HttpResponse返回给回调函数success,回调函数再执行相应的操作。
==================================================================================================== 但是在实际的使用中,我们要这么定义views.py

import json
def ajax_demo(request):
if request.method == 'POST':
ret = {'status':False,'message':''}
user = request.POST.get('user')
pwd = request.POST.get('pwd')
print(user,pwd)
if user == '111' and pwd == '222':
ret['status'] = True
return HttpResponse(json.dumps(ret))
else:
ret['message'] = '用户名或密码错误'
return HttpResponse(json.dumps(ret))
return render(request,'ajax_demo.html')

ajax_demo.html

<body>
<div>
<p>用户名: <input type="text" id="username" /></p>
</div>
<div>
<p>密码: <input type="password" id="pwd" /></p>
</div>
<input type="button" value="提交" onclick="SubmitForm();"/> <script src="/static/jquery-1.12.4.js"></script>
<script>
function SubmitForm(){
$.ajax({
url:'/web/ajax_demo/',
type:'POST',
data:{'user':$('#username').val(),'pwd':$('#pwd').val()},
dataType:'json',
success:function(data){
if(data.status){
location.href="http://www.baidu.com";
}
else{
alert(data.message)
}
}
})
}
</script>
</body>

如果不用ajax自带的dataType类型,也可以自己将json的格式转化为字典格式:

<script src="/static/jquery-1.12.4.js"></script>
<script>
function SubmitForm(){
$.ajax({
url:'/web/ajax_demo/',
type:'POST',
data:{'user':$('#username').val(),'pwd':$('#pwd').val()},
{# dataType:'json',#}
success:function(data){
var data_dic = JSON.parse(data);
if(data_dic['status']){
location.href="http://www.baidu.com";
}
else{
alert(data_dic['message'])
}
}
})
}
</script>

JQuery中的ajax也是调用了浏览器中的XMLHttpRequest对象来执行的。
http://www.cnblogs.com/wupeiqi/articles/5703697.html
python Ajax的使用的更多相关文章
- python -- ajax数组传递和后台接收
phper转pythoner 在当初使用php做网站开发的时候,前端ajax传递数据的时候,就是直接将一个数组传递过去,后台用$_POST['key']接收即可,没有考虑那么细,想来这不都是理所当然的 ...
- python Ajax
Ajax一.准备知识JSON1.什么是json JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSO ...
- python ajax post 数据
简单的html <div> <input type="submit" id="tes" value="tes"> & ...
- JSON 的正确用法:Python、MongoDB、JavaScript与AjaxJSON 的正确用法:Python、MongoDB、JavaScript与Ajax
本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案.网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说 ...
- My First Django Project - <Django + MySQL + Ajax> (1)
因为最近工作有些信息需要额外花时间去收集,但是现在有相关的operations每天记录状态,但是没有一个很好的状态收集工具,将状态收集起来,所以很多情况下我们不知道是状态变好了,还是变差.如果使用EX ...
- python 各种开源库
测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. 链接 sel ...
- python 三方面库整理
测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. –推荐 mechanize- Python中有状 ...
- Python 总结
python3.7下载地址 Python安装pip 1.首先检查linux有没有安装python-pip包,直接执行 yum install python-pip 2.没有python-pip包就执行 ...
- Python测试 ——开发工具库
Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. mechanize- Python中有状态的程序化Web浏 ...
随机推荐
- hadoop cmd
一.hadoop文件操作 1.Ls hadoop fs -ls / 2.Put hadoop fs -put xx /path 3.Mkdir hadoop fs -mkdir 4.要从HDFS中删除 ...
- Python—数据结构——链表
数据结构——链表 一.简介 链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构.由一系列节点组成的元素集合.每个节点包含两部分,数据域item和指向下一个节 ...
- 操作uwsgi命令
uwsgi -i 你的目录/uwsgi.ini & 后台开启uwsgi pkill -f uwsgi 重启uwsgi
- Spring学习之Aspectj开发实现AOP
Aspectj是一个基于Java语言的Aop框架,它提供了强大的Aop功能. Aspectj简介: 1.Aspectj是一个面向切面的框架,它扩展了Java语言,它定义了一个Aop语法. 2.所以它有 ...
- PAT Advanced 1008 Elevator (20) [数学问题-简单数学]
题目 The highest building in our city has only one elevator. A request list is made up with N positive ...
- java图片上传,通过MultipartFile方式,如果后台获取null检查是否缺少步骤
本方法基于springMvc 1.首先需要在webap下创建images 2.在springmvc.xml上引入 <bean id="multipartResolver" c ...
- intellij idea安卓开发配置
1.java sdk 2.java ndk 3.gradle https://gradle.org/install/#manually 配置properties 删除根目录下android{} htt ...
- Data总结
getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数 var d = new Date(); var n = d.getTime(); //一长串数字
- Python—插入排序算法
# 插入排序,时间复杂度O(n²) def insert_sort(arr): """ 插入排序:以朴克牌为例,从小到大排序.摸到的牌current与手里的每张牌进行对比 ...
- Python笔记_第一篇_面向过程第一部分_6.循环控制语句(while 和 for)_
承接条件控制语句.条件控制语句像大树一样有很多的之差,那条路径通(也就是表达式判断为True)就会往哪一个树杈去运行,万涓溪水汇成大河.对于常用的程序结构形式,还有一种这篇文章就会讲解,那就是循环控制 ...