前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django--ajax的使用,应用

django--ajax的使用,应用

作者头像
测试开发社区
发布2019-09-20 16:02:34
7960
发布2019-09-20 16:02:34
举报
文章被收录于专栏:测试开发社区测试开发社区

Ajax简介

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

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

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

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

场景:

优点:

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

AJAX无须刷新整个页面

创建一个新的Django项目:

目录结构如下:

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

代码语言:javascript
复制
from django.contrib import adminfrom django.urls import pathfrom app import viewsurlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]

修改视图函数views.py

代码语言:javascript
复制
from django.shortcuts import render# Create your views here.def index(request):    return render(request, "index.html")

引入jquery文件,有两种方式

第一种cdn引入

代码语言:javascript
复制
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

第二种本地文件引入

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

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

代码语言:javascript
复制
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]

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

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

代码语言:javascript
复制
<!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文件

代码语言:javascript
复制
<!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文件

代码语言:javascript
复制
from django.contrib import adminfrom django.urls import pathfrom app import viewsurlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('books/', views.books),]

新建视图函数:

代码语言:javascript
复制
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文件

代码语言:javascript
复制
<!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

代码语言:javascript
复制
<!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>

修改视图函数

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档