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日

相关文章

  • 个人站点页面搭建和侧边栏展示功能

    展示个人站点页面 前端代码:和首页文章展示基本一样: <div class=”col-md-8″> {% for article in article_list %} <ul class=”media-list”> <li class=”media”> <a href=””><h4 class=”medi…

    Python开发 2023年4月2日
    00
  • 数据库配置限)不用root用户操作数据库了(为数据库创建用户,并赋予权限)

    步骤 1.为路飞项目创建数据库 在mysql终端输入以下代码: create database luffy charset=utf8; 2.创建数据库用户 create user ‘username’@’host’ identified by ‘password’; 其中username为自定义的用户名;host为登录域名,host为’%’时表示为 任意IP…

    Python开发 2023年4月2日
    00
  • flask操作数据库

    flask操作数据库 准备工作 安装flask-script(版本过高可能会报错) pip install flask-script==2.0.3 使用flask-script里的Manager类实例化来管理项目的启动等 from apps import create_app from flask_script import Manager app = cr…

    2023年4月2日
    00
  • 重构后台的django项目目录、配置开发环境、添加环境变量

    重构项目目录 celery_task: logs:项目运行时/开发时日志目录包 luffapi:项目同名文件夹 apps:项目所有应用的集合文件夹 libs:第三方类库的保存目录[第三方组件、模块] – 包 media:用户提交的文件目录文件夹 settings:配置目录,包含开发时的配置文件和上线时的配置文件 utils:多个模块[子应用]的公共函数类库[…

    2023年4月2日
    00
  • 轮播图前端

    轮播图组件 <template> <div id=”banner”> <el-carousel height=”400px”> <!– 将banner_list循环–> <el-carousel-item v-for=”item in banner_list” :key=”item”> <…

    2023年4月2日
    00
  • 权限类与频率类

    权限类 主要用途:用户登录了,某个接口可能只有超级管理员才能访问,普通用户不能访问 案列:出版社的所有接口,必须登录,而且是超级管理员才能访问 分析步骤 第一步:写一个类,继承BasePermission 第二步:重写has_permission方法 第三步:在方法校验用户时候有权限(request.user就是当前登录用户) 第四步:如果有权限,返回Tru…

    2023年4月2日
    00
  • admin后台管理数据库里的表

    admin后台管理 django给您提供了一个可视化图形界面,来方便您来对数据库里的表进行增删改查的管理 但是!使用admin后台管理你自己注册的模型表时,需要自行进行先注册该表! 在应用下的admin.py里进行注册: from django.contrib import admin from app01 import models # Register …

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

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

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