Ajax简介

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

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

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

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

场景:

优点:

AJAX使用Javascript技术向服务器发送异步请求

AJAX无须刷新整个页面

创建一个新的Django项目:

目录结构如下:

修改urls.py文件,添加一个index路径

from django.contrib import admin
from django.urls import path
from app import views urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]

修改视图函数views.py

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request, "index.html")

引入jquery文件,有两种方式

第一种cdn引入

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

第二种本地文件引入

在项目目录下面创建一个static的文件夹

修改settting.py文件,添加内容如下:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]

创建一个jquery.min.js文件,把jquery的内容复制进去就好

在templates模版下,创建index,html文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jquery.min.js"></script>
</head>
<body>
<button class="btn">click</button> <script>
 $(".btn").click(function () {
        alert(123)
    })
</script> </body>
</html>

启动Django,访问

http://127.0.0.1:8000/index

发送ajax请求

修改index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jquery.min.js"></script>
</head>
<body>
<button class="btn">click</button> <script>
 $(".btn").click(function () {
        // 发送Ajax请求
     $.ajax({
            url:"http://127.0.0.1:8000/books/",
            type:"get", // 默认get请求
            success:function (data) {  //回调函数,拿到数据后的操作
            console.log(data)
            }
        })
    }) </script> </body>
</html>

新建路径books,修改urls.py文件

from django.contrib import admin
from django.urls import path
from app import views urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('books/', views.books), ]

新建视图函数:

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return render(request, "index.html") def books(request):
    return HttpResponse("金梅")

访问http://127.0.0.1:8000/index

点击按钮,局部刷新,返回数据

增加标签:

修改index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jquery.min.js"></script>
</head>
<body>
<button class="btn">click</button>
<p class="con"></p> <script>
 $(".btn").click(function () {
        // 发送Ajax请求
      $.ajax({
           url:"http://127.0.0.1:8000/books/",
           type:"get", // 默认get请求
           success:function (data) {  //回调函数,拿到数据后的操作
               console.log(data);
               $(".con").html(data)  //往p标签里面添加内容
 }
        })
    }) </script> </body>
</html>

访问http://127.0.0.1:8000/index

举例:做一个加法计算

修改index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jquery.min.js"></script>
</head>
<body>
<button class="btn">click</button>
<p class="con"></p> <hr>
<button class="cal">计算</button> <script>
 $(".btn").click(function () {
        // 发送Ajax请求
     $.ajax({
            url:"http://127.0.0.1:8000/books/",
            type:"get", // 默认get请求
            success:function (data) {  //回调函数,拿到数据后的操作
              console.log(data);
              $(".con").html(data)  //往p标签里面添加内容
 }
        })
    })
    
    // 利用ajax发送数据
    $(".cal").click(function () {
        $.ajax({
            url:"/cal/",
            type:"get",
            data:{
                a:1,
                b:2,
 },
            success:function (data) {
                console.log(data)
            }
        })
    }) </script> </body>
</html>

修改视图函数

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return render(request, "index.html") def books(request):
    return HttpResponse("金梅") def cel(request):
    a = request.GET.get("a")
    b = request.GET.get("b")
    res = int(a) + int(b)
    return HttpResponse(str(res)

转载出处:

http://www.py3study.com/Article/details/id/329.html

django--ajax的使用,应用的更多相关文章

  1. Django ajax MYSQL Highcharts<1>

    Another small project with django/Ajax/Mysql/Highcharts. 看下效果图  - delivery dashboard .嘿嘿 是不是还蛮好看的. 废 ...

  2. django ajax练习

    这几天遇到了django ajax请求出错的问题,总结一下 前端js:我这里创建的是一个字典格式的数据,前端js收到字典之后也是要用字典的形式去解包后台传送过来的数据,比如我下面的写法:data['s ...

  3. 关于Django Ajax CSRF 认证

    CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的 ...

  4. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  5. python学习-- Django Ajax CSRF 认证

    使用 jQuery 的 ajax 或者 post 之前 加入这个 js 代码:http://www.ziqiangxuetang.com/media/django/csrf.js /*======== ...

  6. django ajax 及批量插入数据 分页器

    ``` Ajax 前端朝后端发送请求都有哪些方式 a标签href GET请求 浏览器输入url GET请求 form表单 GET/POST请求 Ajax GET/POST请求 前端朝后端发送数据的编码 ...

  7. Django——Ajax

    1.Ajax简介 AJAX(Asynchronous Javascript And XML)--"异步的JavaScript与XML". Ajax使用Javascript语言与服务 ...

  8. django ajax提交form表单数据

    后台: from django.shortcuts import render from django.shortcuts import redirect from django.shortcuts ...

  9. Django ajax提交 登录

    一.url from django.contrib import adminfrom django.urls import pathfrom appo1 import views urlpattern ...

  10. django ajax报错解决:You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set.

    Django版本号:1.11.15 django中ajax请求报错:You called this URL via POST, but the URL doesn't end in a slash a ...

随机推荐

  1. DOCKER 学习笔记2 认识dockerfile自定义镜像

    Dockerfile 概念 Dockerfile 是一个文本文件,但包含所构建容器在运行时候的参数.库.资源配置.可以简单理解为我们现有的镜像,比如Centos/Nginx 但我们需要构建一个容器的时 ...

  2. HTTP Error 502.5 - Process Failure 解决方案

    .netcore 2.1.4的程序部署到IIS后报以下错误: ======================================================= HTTP Error 50 ...

  3. 关于富文本字段问题(mysql)

    1.表字段字符集建议使用: utf8mb4.utf8mb4_general_ci 2.保险起见spring-boot配置: spring:datasource:connection-init-sqls ...

  4. 吴裕雄--天生自然TensorFlow高层封装:使用TFLearn处理MNIST数据集实现LeNet-5模型

    # 1. 通过TFLearn的API定义卷机神经网络. import tflearn import tflearn.datasets.mnist as mnist from tflearn.layer ...

  5. 回顾vim,ftp

    常用服务器 ftp,ssh FTP是文件传输协议的简称,文传协议,用于internet上控制文件的双向传输 它也是一个应用程序,,基于不同的操作系统有不同的FTP应用程序,都遵循同一种协议以传输文件. ...

  6. java.lang.IllegalArgumentException: Cannot format given Object as a Date

    在进行日期转换的时候遇到了这个问题, 非常的恼火 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ...

  7. Maven 仓库搜索服务和私服搭建

    Maven 仓库搜索服务 使用maven进行日常开发的时候,一个常见问题就是如何寻找需要的依赖,我们可能只知道需要使用类库的项目名称,但是添加maven依赖要求提供确切的maven坐标,这时就可以使用 ...

  8. linux系统用户管理(二)

    5.组命令管理**组账户信息保存在/etc/group和/etc/gshadow两个文件中 /etc/group 组账户信息 [root@localhost ~]# head -2 /etc/grou ...

  9. An internal error occurred during: "Redeploy".

    原因:项目中JDK使用的版本与现在使用的JDK版本不同所致. 解决方法:右键选择项目>properties>java Build Path>Libraries 查看下面的JRE Sy ...

  10. LIS 问题 二分查找优化

    按n=5,a-{4,2,3,1,5}为例 dp的值依次是: INF INF INF INF INF 4     INF INF INF INF 2     INF INF INF INF 2      ...