Ajax请求的几个小练习

准备工作

路由中做了分发:
re_path('^app01/',include('app01.url'))
app01中url.py文件的内容:
from django.urls import re_path
from app01 import views urlpatterns = [
re_path('^index/$',views.index),
re_path('^test_ajax/$',views.test_ajax),
re_path('^cal/$',views.cal),
re_path('^login/$',views.login),
]
视图函数中第一条进入首页的函数
def index(request):
return render(request,'index.html')
models.py文件中新增一张数据表user:
class User(models.Model):
name = models.CharField(max_length=32)
pwd = models.CharField(max_lenngth=32)

几个请求的小练习

以下只写app01应用的views与templates的模板文件的js代码——static文件的引入略去——大家注意写js前一定要先引入jQuery

点击按钮令下面的标签出现后台传送的文字

标签如下:
<button class='AJAX'>AJAX</button>
<p class='content'></p>
js内容如下:
   $('.AJAX').click(function{
//发送ajax请求
$.ajax({
//请求的url,需要增加路由
//做了分发,路径要相应改一下
url:'app01/test_ajax',
type:'post',
data:{a:1,b:2},
success:function(data){
console.log(data)
//局部刷新
$('.content').html(data)
}
})
})
视图函数内容如下:
def test_ajax(request):
print(request.GET) #<QueryDict: {'a': ['1'], 'b': ['2']}>
return HttpResponse('OK!')

Ajax计算求和练习

标签如下:
<input id='n1' type='text'> + <input id='n2' type='text'> = <input id='n3' type='text'>
<input type='button' id='cal' value='计算'>
js内容如下:
  $('#cal').click(function(){

		$.ajax({
//计算的url,需要增加路由
//做了分发,路径要相应改一下
url:'/app01/cal/',
type:'post',
data:{
'n1':$('#n1').val(),
'n2':$('#n2').val()
},
//注意这里得加形参data,接收视图函数传过来的值
success:function(data){
//结果赋值
console.log(data)
$('#n3').val(data)
}
})
})
视图函数内容如下:
def cal(request):
print(request.POST) #<QueryDict: {'n1': ['1232'], 'n2': ['123']}>
n1 = int(request.POST.get('n1'))
n2 = int(request.POST.get('n2'))
ret = n1 + n2
return HttpRequest(ret)

Ajax登陆验证

标签如下:
<form action=''>
用户名: <input id='user' type='text'>
密 码: <input id='pwd' type='text'>
<input id='login_btn' type='button' value='确认'>
<span id='error'></span>
</form>
js内容如下:
  $('#login_btn').click(function{
$.ajax({
//增加路由,注意分发的写法
url:'/app01/login/',
type:'post',
data:{
'user':$('#user').val(),
'pwd':$('#pwd').val()
},
success:function(data){
console.log(data) //得到的是json字符串 {"user": null, "msg": "wrong username or password"}
console.log(typeof data) //string类型
//反序列化
var dt = JSON.parse(data) //得到的是 object{}
console.log(dt) //{"user": null, "msg": "wrong username or password"}
console.log(typeof dt) //object
//注意下面对象调用了dt
if(dt.user){
location.href='http://www.baidu.com'
}
else{
$('#error').html(dt.msg).css({'color':'red','margin-left':'10px'})
}
},
})
})
视图函数内容如下:
def login(request):
print(request.POST) #<QueryDict: {'user': ['123'], 'pwd': ['222']}>
username = request.POST.get('user')
password = request.POST.get('pwd')
#返回的信息
ret = {'user':None,'msg':None}
##从数据库中找值去判断————注意数据库中的字段是name与pwd,还有这里要用first()
user = User.objects.filter(name=username,pwd=password).first()
if user:
ret['user'] = user.name
else:
ret['pwd'] = 'wrong username or password'
#给前端返回序列化后的数据
import json
return HttpRequest(json.dumps(ret))

效果演示:

Ajax请求的几个小练习的更多相关文章

  1. Ajax请求,跨域小坑

    今天在上班的时候,被坐在旁边项目经理叫过去问了一个Ajax请求跨域的问题,一开始没理解清楚也还有对这个没有理解的透,后面被打击的要死. 当时的需求是需要测试一个已发布的api接口,需要在本地写测试程序 ...

  2. javascrpt 中的Ajax请求

    回顾下javascript中的Ajax请求,写一个小例子: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  3. python学习(26)分析ajax请求抓取今日头条cosplay小姐姐图片

    分析ajax请求格式,模拟发送http请求,从而获取网页代码,进而分析取出需要的数据和图片.这里分析ajax请求,获取cosplay美女图片. 登陆今日头条,点击搜索,输入cosplay 下面查看浏览 ...

  4. JQuery ajax请求struts action实现异步刷新的小实例

    这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换, ...

  5. AJAX请求详解 同步异步 GET和POST

    AJAX请求详解 同步异步 GET和POST 上一篇博文(http://www.cnblogs.com/mengdd/p/4191941.html)介绍了AJAX的概念和基本使用,附有一个小例子,下面 ...

  6. 原生js发送ajax请求

    堕落了一阵子了,今天打开博客,发现连登录的用户名和密码都不记得了.2016年已过半,不能再这么晃荡下去了. 参加了网易微专业-前端攻城狮 培训,目前进行到大作业开发阶段,感觉举步维艰.但是无论如何,不 ...

  7. 怎样防止重复发送 Ajax 请求?

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:长天之云链接:http://www.zhihu.com/question/19805411/answer/15465427来源 ...

  8. 采用指数退避算法实现ajax请求的重发,全部完成时触发回调函数

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  9. ajax请求总是不成功?浏览器的同源策略和跨域问题详解

    场景 码农小明要做一个展示业务数据的大屏给老板看,里面包含了来自自己网站的数据和来自隔壁老王的数据.那么自己网站的数据提供了 http://xiaoming.com/whoami 这样的数据接口隔壁老 ...

随机推荐

  1. MapReduce(五)

    MapReduce的(五) 1.MapReduce的多表关联查询. 根据文本数据格式.查询多个文本中的内容关联.查询. 2.MapReduce的多任务窜执行的使用 多任务的串联执行问题,主要是要建立c ...

  2. Runtime-消息发送和消息转发

    消息发送 消息发送举例:下面这个OC代码 [person read:book]; 会被编译成: objc_msgSend(person, @selector(read:), book); objc_m ...

  3. C++解析十-数据封装

    数据封装 所有的 C++ 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数. 程序数据:数据是程序的信息,会受到程序函数的影响.封装是面向对象编程中把数据和操作数 ...

  4. Scrum Meeting博客汇总

    葫芦娃不想写代码团队 Scrum Meeting博客汇总 一.Alpha阶段 [Alpha]Scrum Meeting 1 [Alpha]Scrum Meeting 2 [Alpha]Scrum Me ...

  5. leetcode python 010

    #实现正则表达式匹配并支持'.'和'*'.#''匹配任何单个字符.#'*'匹配前面元素的零个或多个.#匹配应覆盖整个输入字符串(非部分).##Some examples:##isMatch(" ...

  6. angular2升级到angular4历程

    Angular 4 在昨天(2017-03-24)正式发布了,我的系列教程也得更新一下.步骤略繁琐,不用 cli 的项目反倒更简单一些,但是 cli 平时给我们的便利还是很多的,升级最多半年一次而已. ...

  7. go web framework gin middleware 设计原理

    场景:一个middleware可以具体为一个函数,而由前面的gin 路由分析可得,每一个路径都对有一个HandlersChain 与其对应. 那么实际上增加一个middleware的过程,就是将每一个 ...

  8. jmeter接口测试基础知识2.0

    如何在jmeter中上传文件:选择post方式后,选择FILES Upload--文件名称栏点击浏览,值栏写file,如果查看的时候报错,就在MIME类型中写TXT 参数化:添加学生信息:进行参数化1 ...

  9. FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)

    题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...

  10. webpack配置(入口出口)

    const path=require('path'); //是node.js的path模块 //单入口,单出口 module.exports={ // 入口文件 entry:{ entry:'./sr ...