分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Django——Ajax

发布时间:2023-09-06 02:11责任编辑:彭小芳关键词:Ajax

1.Ajax简介

AJAX(Asynchronous Javascript And XML)——“异步的JavaScript与XML”。

Ajax使用Javascript语言与服务器进行异步的交互,传输的数据为XML(时至今日,传输的数据更多为Json格式)。

同步交互与异步交互

同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;

异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。

Ajax的特点:

  1. 异步交互
  2. 浏览器页面局部刷新

Ajax的优点:

  1. Ajax使用Javascirpt向服务器发送异步请求
  2. Ajax无须刷新整个页面

2.基于jQuery的Ajax实现

2.1 最基础的Ajax代码实现

2.1.1模板

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title> ???<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> ???</script></head><body><div class="content"></div><button class="Ajax">Ajax</button><script> ???$(".Ajax").click(function () { ???????$.ajax({ ???????????????url: '/test/', ???????????????type: 'get', ???????????????success: function (data) { ???????????????????$('.content').html(data) ???????????????} ???????????} ???????) ???})</script></body></html>

2.1.2 视图

from django.shortcuts import render,HttpResponse# Create your views here.def index(request): ???return render(request,'index.html')def test(request): ???return HttpResponse('hello Ajax')

实现效果:

2.2基于Ajax的计算器

2.2.1模板

<input type="text" id="num1">+<input type="text" id="num2">=<input type="text" id="ret"><button class="cal">计算</button> $('.cal').click(function () { ???????$.ajax({ ???????????url:'/cal/', ???????????type:'post', ???????????data:{ ???????????????'n1':$('#num1').val(), ???????????????'n2':$('#num2').val(), ???????????}, ???????????success:function (data) { ???????????????console.log(data); ???????????????$('#ret').val(data); ???????????} ???????}) ???})

2.2.2视图

def cal(request): ???print(request.POST) ???n1 = int(request.POST.get('n1')) ???n2 = int(request.POST.get('n2')) ???ret = n1+n2 ???return HttpResponse(ret)

实现效果:

2.3基于Ajax的登陆组件

2.3.1模板

<form > ???用户名 <input type="text" id="user"> ???密码 <input type="password" id="pwd"> ???<input type="button" value="submit" class="login_btn"><span class="error"></span></form> $('.login_btn').click(function () { ???????$.ajax({ ???????????url:"/login/", ???????????type:'post', ???????????data:{ ???????????????'user':$('#user').val(), ???????????????'pwd':$('#pwd').val(), ???????????}, ???????????success:function(data){ ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????var data=JSON.parse(data); ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????if (data.user){ ???????????????????location.href='http://www.baidu.com' ???????????????} ???????????????else { ???????????????????$(".error").html(data.msg).css({"color":'red',"margin-left":'10px'}) ???????????????} ???????????} ???????}) ???})

2.3.2视图

def login(request): ???print(request.POST) ???user=request.POST.get("user") ???pwd=request.POST.get('pwd') ???user= User.objects.filter(name=user,pwd=pwd).first() ???res= {"user":None,"msg":None} ???if user: ???????res["user"] = user.name ???else: ???????res["msg"]= "username or password wrong!" ???import json ???return HttpResponse(json.dumps(res))

Django——Ajax

原文地址:https://www.cnblogs.com/huang-yc/p/9532533.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved