转自: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的使用的更多相关文章

  1. python -- ajax数组传递和后台接收

    phper转pythoner 在当初使用php做网站开发的时候,前端ajax传递数据的时候,就是直接将一个数组传递过去,后台用$_POST['key']接收即可,没有考虑那么细,想来这不都是理所当然的 ...

  2. python Ajax

    Ajax一.准备知识JSON1.什么是json JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSO ...

  3. python ajax post 数据

    简单的html <div> <input type="submit" id="tes" value="tes"> & ...

  4. JSON 的正确用法:Python、MongoDB、JavaScript与AjaxJSON 的正确用法:Python、MongoDB、JavaScript与Ajax

    本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案.网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说 ...

  5. My First Django Project - <Django + MySQL + Ajax> (1)

    因为最近工作有些信息需要额外花时间去收集,但是现在有相关的operations每天记录状态,但是没有一个很好的状态收集工具,将状态收集起来,所以很多情况下我们不知道是状态变好了,还是变差.如果使用EX ...

  6. python 各种开源库

    测试开发 来源:https://www.jianshu.com/p/ea6f7fb69501 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. 链接 sel ...

  7. python 三方面库整理

    测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. –推荐 mechanize- Python中有状 ...

  8. Python 总结

    python3.7下载地址 Python安装pip 1.首先检查linux有没有安装python-pip包,直接执行 yum install python-pip 2.没有python-pip包就执行 ...

  9. Python测试 ——开发工具库

    Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. mechanize- Python中有状态的程序化Web浏 ...

随机推荐

  1. SQL注入——报错注入

    0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利 ...

  2. Django2.0——Form组件简单总结

    Django提供了一个Form组件来配和前端的表单进行使用,Form有两个强大的功能,分别是生成HTML代码和验证数据的合法性.通常我们不会用其第一个功能,因为前端的设计可以做出更加精美且多样的表单页 ...

  3. vue title悬停

    title 设置name="peo" title="" v-on:mouseenter="peoAndCarHover(item.signStatus ...

  4. Anaconda 添加清华源与恢复默认源

    1.添加清华源 查看清华大学官方镜像源文档:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 本文基于Windows平台,首先用命令: conda ...

  5. [kuangbin 带你飞] DP专题——HDU - 1024

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  6. share团队冲刺4

    团队冲刺第四天 昨天:进行各种按钮的操作,自定义按钮颜色形状 今天:设置布局,账号密码的输入,选择框 问题:无

  7. //使用PDO连接mysql数据库

    <?php //使用PDO连接mysql数据库 class pdo_con{     var $dsn = 'mysql:dbname=test; host:127.0.0.1';     va ...

  8. 吴裕雄--天生自然Linux操作系统:Linux 用户和用户组管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

  9. python学习Day08--文件操作

    [主要内容] 文件操作: 1. r 2. w 3. a 4. r+ 读写模式. 需要移动光标进行反复读写 5. w+ 6. a+ 7. b bytes 读写操作的是字节. 用在非文本上 8. seek ...

  10. 理解ClassLoader工作机制

    package com.ioc; public class Test { public static void main(String[] args) throws ClassNotFoundExce ...