首页 > 其他分享 >1.Django与Ajax

1.Django与Ajax

时间:2023-03-11 13:22:17浏览次数:48  
标签:请求 i1 args request ajax Django Ajax POST

AJAX简介(异步提交 局部刷新)

AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。通过使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。

AJAX不是新的编程语言,而是一种使用现有标准的新方法(比较装饰器)。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。(这一特点给用户的感受是在不知不觉中完成请求和响应过程)。

Ajax我们只学习jQuery封装之后的版本(不学原生的 原生的复杂并且在实际项目中也一般不用),所以我们在前端页面使用ajax的时候需要确保导入了jQuery。ps:并不只有jQuery能够实现ajax,其他的框架也可以。

  朝服务端发送请求的方式

# 1、浏览器地址栏直接输入url回车        GET请求
# 2、a标签href属性        GET请求
# 3、form表单        GET请求/POST请求
# 4、ajax        GET请求/POST请求

 

  案例

页面上有三个input框
    在前两个框中输入数字 点击按钮 朝后端发送ajax请求
    后端计算出结果 再返回给前端动态展示的到第三个input框中
    (整个过程页面不准有刷新,也不能在前端计算)

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<input type="text" id="d1">+
<input type="text" id="d2">=
<input type="text" id="d3">
<p>
    <button id="btn">点我</button>
</p>
<script>
    // 先给按钮绑定一个点击事件
    $('#btn').click(function(){
        // 超后端发送ajax请求
        $.ajax({
            // 1.指定朝那个后端发送ajax请求
            url:'',  // 不写就是朝当前地址提交
            // 2.请求方式
            type:'post',  // 不指定默认就是get请求,都是小写
            // 3.数据
            {#data:{'username':'jiang','password':123},#}
            data:{'i1':$('#d1').val(),'i2':$('#d2').val()},
            // 4.回调函数:当后端给你返回结果的时候会自动触发,args接收后端的返回结果
            success:function (args) {
                alert(args)
                $('#d3').val(args)  // 通过DOM操作动态渲染到第三个input框里面
                {#$('#d3').val(args.outcome) #}
                console.log(typeof args)  // js语法,查看args的数据类型
            }
        })
    })
</script>
</body>
</html>
ab_ajax.html
from django.shortcuts import render,HttpResponse
import json
from django.http import JsonResponse
def ab_ajax(request):
    if request.method == 'POST':
        print(request.POST)  # <QueryDict: {'i1': ['1'], 'i2': ['2']}>
        i1 = request.POST.get('i1')  # <class 'str'>
        i2 = request.POST.get('i2')  # <class 'str'>
        # 先转成整形再相加
        i3 = int(i1) + int(i2)
        d = {'code': i1, 'msg': i2, 'outcome':i3}

        # return HttpResponse(i3)  # 前端args为string类型
        # return HttpResponse(json.dumps(d))  # 前端args为string类型
        return JsonResponse(d)  # # 前端args为object类型(前端可以利用对象点属性来获取值)
    return render(request,'ab_ajax.html')
views.py

 

标签:请求,i1,args,request,ajax,Django,Ajax,POST
From: https://www.cnblogs.com/yuanxiaojiang/p/17205726.html

相关文章