django中有关ajax的部分

Django_ajax

1 简介

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

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

2 特点

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程)

3 能向后端发送请求的方式

序号 类型 请求方式
1 浏览器地址栏直接输入url get请求
2 a标签的href属性 get请求
3 form表单action属性 get请求和post请求
4 ajax get请求和post请求

4 ajax的使用

ps:作为后端人员,前期只需要学习jquery封装之后的版本就行(不需要学习原生的ajax,原生的复杂且项目中一般不用),所以在前端

页面使用ajax的时候需要先导入jquery

4.1 jquery中ajax的使用方法

jquery调用ajax的方法:
    格式:$.ajax({});
        参数:
            type:请求的方式get、post(小写)
            url:"" 请求的地址,不写默认为当前地址
            async:是否异步,默认为true表示异步
            data:发送到服务器的数据
            dataType:'json'预期服务器返回的数据类型为json格式
            contentType:设置请求头
            success:function(date){}; data是形参名,请求成功时调用此函数
            error:请求失败时调用此函数

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

html部分


<body>
<input type="text" id="d1">+
<input type="text" id="d2">=
<input type="text" id="d3"><br>
<button id="btn">提交</button>
</body>
<script>
    $('#btn').click(function (){  # 点击btn按钮时触发click事件,执行ajax
        $.ajax({
            type:'post', # 指定请求方式
            url:'', # 不写默认向当前地址提交
            data:{'u1':$('#d1').val(),'u2':$('#d2').val()},  #获取需要向服务器提交的值,使用jquery动态获取用户提交的值
            success:function (args){  # ajax的url请求成功时执行的函数,args指的是服务端传到客户端的数据,如果是服务端返回的是字典,则需要进行反序列化
                $('#d3').val(args)   #将传回的数据添加到d3框中
            }
        })
    })
</script>

后端部分

def index(request):
    if request.method =='POST':
        u1 = request.POST.get('u1') #接收前端传来的数据
        u2 = request.POST.get('u2')
        u3 = int(u1)+int(u2) # 将数据进行相加
        return HttpResponse(u3)  # 把结果返回给前面,注意这个用HttpResponse返回,如果是字典,则需要进行序列化
      # return JsonResponse(dict) # 直接把字典序列化,前端也无需在反序列化了! 
    return render(request,'index.html')  # 最后还需要返回原先的页面

4.2ajax发送json格式数据和文件

详见:django中前后端传输数据的编码格式(contentType)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django中有关ajax的部分 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • pycharm操作redis

    安装 在终端环境下输入: pip install redis pycharm操作redis之普通连接 # 1.导入模块 from redis import Redis # 2.实例化产生链接对象 conn = Redis() # 连接本地的redis # conn = Redis(host=”,port=”,password=”,) 连接远程的redi…

    2023年4月2日
    00
  • 支付宝支付

    支付宝支付流程 在python中封装alipay 安装 >: pip install python-alipay-sdk –upgrade # 如果抛ssl相关错误,代表缺失该包 >: pip install pyopenssl 结构 libs ├── AliPay # aliapy二次封装包 │ ├── __init__.py # 包文件 │…

    2023年4月2日
    00
  • 基础数据类型之字典

    1.字典的定义 使用{}定义字典,括号内用逗号分隔开多个key:value,其中value可以是任意类型,但是key必须是不可变类型且不能重复,是无序的! info=[ [‘name’,’zhang’], (‘age’,19) [‘gender’,’男’] ] d={} # 第一种方式定义 d=dict(x=1,y=2) #第二种,dict里面也可以穿一个i…

    Python开发 2023年4月2日
    00
  • 认证

    认证的实现 使用步骤: # 通过认证类完成,使用步骤 1 写一个认证类,继承BaseAuthentication 2 重写authenticate方法,在内部做认证 3 如果认证通过,返回2个值 4 认证不通过抛AuthenticationFailed异常 5 只要返回了两个值,在后续的request.user 就是当前登录用户 认证源码分析: https:…

    Python开发 2023年4月2日
    00
  • django中的request对象方法

    1.什么是request对象 在django中,当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpRequest对象;Django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。 2.request对象的作用 request对象里面封装了请求时拿到的数据,我们可以通过request.的…

    Python开发 2023年4月2日
    00
  • django自带的序列化组件

    1.什么是序列化组件 在django中,自带一个序列化组件,它是用来将数据进行整理、转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作。 2.为什么要用序列化组件 当我们从数据库取出一些数据时,我们需要将数据转成特定的格式,比如列表套字典的形式,然后将这些数据序列化成json的格式传输给前端,这就需要我们在后端把…

    Python开发 2023年4月2日
    00
  • django中的路由层

    1.什么是路由层 简单来说,就是通过路由层中的path函数,告诉django遇到那个url,执行那个视图函数 2.路由层的请求流程 1.客户在浏览器输入网址→请求进入django的setting.py中的ROOT_URLCONF寻找指定使用的urls.py文件位置(如果中间件有路由功能,urls文件功能会被其替代) 2.Django会先匹配项目目录下的pat…

    Python开发 2023年4月2日
    00
  • 小程序子页面向父页面传值、腾讯云对象存储上传图片

    1. 页面传值 1.1 父页面向子页面传值 父页面: /pages/xx/xxx?id=1 子页面 // option就可以接收到父页面传来的值 onLoad:function(option){ } 1.2 子父页面 子页面 var pages = getCurrentPages() var prevPage = pages[pages.length-2] …

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部