最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django中使用AJAX的詳細過程

 更新時間:2022年11月02日 12:16:27   作者:-一臉懵逼-  
在項目中前后端數(shù)據(jù)相互是一種常態(tài),下面這篇文章主要給大家介紹了關于Django中使用AJAX的詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

AJAX

AJAX是前端技術(shù)的集合,包括JavaScript、XML、HTML、CSS等。

AJAX的作用

提升用戶體驗。

JQuery

JQuery是一個兼容多種瀏覽器的JavaScript庫。

JQuery的作用

JQuery簡化JavaScript的使用,同理,簡化AJAX的使用。

在線鏈接

Django版本:3.0.6

JQuery版本:1.12.4

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.12.4.min.js"></script>

AJAX的使用方法

urls.py

from django.urls import path
import Public.views

urlpatterns = [
    path('error/',Public.views.error),
]

views.py

from django.http import HttpResponse, request, response
from django.shortcuts import redirect, render, resolve_url
def error(request):
    if request.method == 'POST':
        num1 = request.POST.get('num1',0)
        num2 = request.POST.get('num2',0)
        num = int(num1)+int(num2)
        return HttpResponse(str(num))  #POST請求僅返回HttpResponse值
    return render(request, 'error.html')  #GET請求返回error.html界面

error.html #使用error界面進行測試

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>error</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.12.4.min.js"></script>
</head>
<body>
    <!-- 增加多個回車是為了明顯顯示是否會刷新界面 -->
    <br> 
	<input type="text" id="d1"> +
	<input type="text" id="d2"> =
	<input type="text" id="d3">
	<button id="btn">計算</button>
    <!-- 添加csrf_token -->
	{% csrf_token %} 
<script>
    $('#btn').click(function () {
		var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
        // 朝后端發(fā)送ajax請求
        $.ajax({
            // 1.指定朝哪個后端發(fā)送ajax請求
            url:'', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
            // 2.請求方式
            type:'post',  // 不指定默認就是get,都是小寫
            // 3.數(shù)據(jù)
            data:{'num1':$('#d1').val(), 'num2':$('#d2').val(),'csrfmiddlewaretoken': csrf},
            // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
            success:function (args) {
                $('#d3').val(args)
            }
        })
    })
</script>
</body>
</html>

輸出效果:輸入2+2,點擊計算,異步計算結(jié)果為4并返回前端

X3倍后代碼

urls.py

from django.urls import path
import Public.views

urlpatterns = [
    path('error/',Public.views.error),
]

views.py

from django.http import HttpResponse, request, response
from django.shortcuts import redirect, render, resolve_url
def error(request):
    if request.method == 'POST':
        num1 = request.POST.get('num1',0)
        num2 = request.POST.get('num2',0)
        num = int(num1)+int(num2)
        return HttpResponse(str(num))  #POST請求僅返回HttpResponse值
    return render(request, 'error.html')  #GET請求返回error.html界面

error.html #使用error界面進行測試

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>error</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.12.4.min.js"></script>
</head>
<body>
    <!-- 增加多個回車是為了明顯顯示是否會刷新界面 -->
    <br> 
	<input type="text" id="d1"> +
	<input type="text" id="d2"> =
	<input type="text" id="d3">
	<button id="btn1">計算</button>
    <br> 
	<input type="text" id="d4"> +
	<input type="text" id="d5"> =
	<input type="text" id="d6">
	<button id="btn2">計算</button>
    <br> 
	<input type="text" id="d7"> +
	<input type="text" id="d8"> =
	<input type="text" id="d9">
	<button id="btn3">計算</button>
    <!-- 添加csrf_token -->
	{% csrf_token %} 
<script>
    $('#btn1').click(function () {
		var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
        // 朝后端發(fā)送ajax請求
        $.ajax({
            // 1.指定朝哪個后端發(fā)送ajax請求
            url:'', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
            // 2.請求方式
            type:'post',  // 不指定默認就是get,都是小寫
            // 3.數(shù)據(jù)
            data:{'num1':$('#d1').val(), 'num2':$('#d2').val(),'csrfmiddlewaretoken': csrf},
            // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
            success:function (args) {
                $('#d3').val(args)
            }
        })
    })
    $('#btn2').click(function () {
		var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
        // 朝后端發(fā)送ajax請求
        $.ajax({
            // 1.指定朝哪個后端發(fā)送ajax請求
            url:'', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
            // 2.請求方式
            type:'post',  // 不指定默認就是get,都是小寫
            // 3.數(shù)據(jù)
            data:{'num1':$('#d4').val(), 'num2':$('#d5').val(),'csrfmiddlewaretoken': csrf},
            // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
            success:function (args) {
                $('#d6').val(args)
            }
        })
    })
    $('#btn3').click(function () {
		var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
        // 朝后端發(fā)送ajax請求
        $.ajax({
            // 1.指定朝哪個后端發(fā)送ajax請求
            url:'', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
            // 2.請求方式
            type:'post',  // 不指定默認就是get,都是小寫
            // 3.數(shù)據(jù)
            data:{'num1':$('#d7').val(), 'num2':$('#d8').val(),'csrfmiddlewaretoken': csrf},
            // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
            success:function (args) {
                $('#d9').val(args)
            }
        })
    })
</script>
</body>
</html>

輸出效果:分別輸入三組數(shù)值,點擊不同的計算,異步計算結(jié)果后根據(jù)點擊的計算返回前端

for循環(huán)后代碼

urls.py

from django.urls import path
import Public.views

urlpatterns = [
    path('error/',Public.views.error),
]

views.py

from django.http import HttpResponse, request, response
from django.shortcuts import redirect, render, resolve_url
def error(request):
    if request.method == 'POST':
        num1 = request.POST.get('num1',0)
        num2 = request.POST.get('num2',0)
        num = int(num1)+int(num2)
        return HttpResponse(str(num))  #POST請求僅返回HttpResponse值
    return render(request, 'error.html')  #GET請求返回error.html界面

error.html #使用error界面進行測試

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>error</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.12.4.min.js"></script>
</head>

<body>
    {% for i in '369'|make_list %}  <!-- for循環(huán) -->
        <br>  <!-- 增加多個回車是為了明顯顯示是否會刷新界面 -->
        <input type="text" id="d{{i|add:-2}}"> +  <!-- id使用python計算 -->
        <input type="text" id="d{{i|add:-1}}"> =  <!-- id使用python計算 -->
        <input type="text" id="d{{i}}">  <!-- id使用python計算 -->
        <button class="btn" id="btn{{i}}">計算</button>  <!-- id使用python計算 -->
    {% endfor %}
    {% csrf_token %}  <!-- 添加csrf_token -->
    <script>
        $('.btn').click(function () {
            var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
            var btn = $(this).attr('id')  //取id值
            var varnum1 = "#d"+(btn.replace("btn","")-2)  //取id值
            var varnum2 = "#d"+(btn.replace("btn","")-1)  //取id值
            var varnum3 = "#d"+(btn.replace("btn",""))  //取id值
            var num1 = $(varnum1).val()  //取id遞增序號值
            var num2 = $(varnum2).val()  //取id遞增序號值
            var num3 = $(varnum3).val()  //取id遞增序號值
            // 朝后端發(fā)送ajax請求
            $.ajax({
                // 1.指定朝哪個后端發(fā)送ajax請求
                url: '', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
                // 2.請求方式
                type: 'post',  // 不指定默認就是get,都是小寫
                // 3.數(shù)據(jù)
                data: { 'num1': num1, 'num2': num2, 'csrfmiddlewaretoken': csrf },
                // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
                success: function (args) {
                    $(varnum3).val(args)
                }
            })
        })
    </script>
</body>

</html>

輸出效果:分別輸入三組數(shù)值,點擊不同的計算,異步計算結(jié)果后根據(jù)點擊的計算返回前端

輸入完成后單數(shù)據(jù)提交代碼

urls.py

from django.urls import path
import Public.views

urlpatterns = [
    path('error/',Public.views.error),
]

views.py

def error(request):
    if request.method == 'POST':
        num1 = request.POST.get('num1',0)
        num2 = request.POST.get('num2',0)
        num = int(num1)+int(num2)
        return HttpResponse(str(num))  #POST請求僅返回HttpResponse值
    return render(request, 'error.html')  #GET請求返回error.html界面

error.html #使用error界面進行測試

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>error</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.12.4.min.js"></script>
</head>

<body onclick="click()">
    {% for i in '369'|make_list %}
    <!-- for循環(huán) -->
    <br> <!-- 增加多個回車是為了明顯顯示是否會刷新界面 -->
    <input type="text" id="d{{i|add:-2}}"> +
    <!-- id使用python計算 -->
    <input type="text" id="d{{i|add:-1}}"> =
    <!-- id使用python計算 -->
    <input type="text" id="d{{i}}"> <!-- id使用python計算 -->
    <button class="btn" id="btn{{i}}">計算</button> <!-- id使用python計算 -->
    {% endfor %}
    {% csrf_token %}
    <!-- 添加csrf_token -->
    <script>
        $('.btn').click(function () {
            var csrf = $('input[name="csrfmiddlewaretoken"]').val();  //增加csrf變量將在data中傳參以避免403錯誤
            var btn = $(this).attr('id')  //取id值
            var varnum1 = "#d" + (btn.replace("btn", "") - 2)  //取id值
            var varnum2 = "#d" + (btn.replace("btn", "") - 1)  //取id值
            var varnum3 = "#d" + (btn.replace("btn", ""))  //取id值
            var num1 = $(varnum1).val()  //取id遞增序號值
            var num2 = $(varnum2).val()  //取id遞增序號值
            var num3 = $(varnum3).val()  //取id遞增序號值
            // 朝后端發(fā)送ajax請求
            $.ajax({
                // 1.指定朝哪個后端發(fā)送ajax請求
                url: '', //不寫就是朝當前地址提交【與form表單的action參數(shù)相同】
                // 2.請求方式
                type: 'post',  // 不指定默認就是get,都是小寫
                // 3.數(shù)據(jù)
                data: { 'num1': num1, 'num2': num2, 'csrfmiddlewaretoken': csrf },
                // 4.回調(diào)函數(shù):當后端給你返回結(jié)果的時候會自動觸發(fā),args接受后端的返回結(jié)果
                success: function (args) {
                    $(varnum3).val(args)
                }
            })
        })
    </script>
    <script>
        document.addEventListener("mouseout", function (e) {  //獲取光標事件
            var num = ($(e.target).attr('id')).replace("d", "").replace("btn", "")  //獲取光標所在元素id
            if (num % 3 === 0) {
            }
            else if (num % 3 === 1) {
                num = parseInt(num) + 2
            }
            else if (num % 3 === 2) {
                num = parseInt(num) + 1
            }
            varnum = "#btn" + num
            $(varnum).click()
        });
        document.addEventListener("keydown", function (e) {  //獲取按鍵事件
            if ((e.keyCode == 9) || (e.keyCode == 32) || (e.keyCode == 13) || ((((e.keyCode == 83)) && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)))) {  //當按鍵為Tab、Enter、Space、Ctrl+S時執(zhí)行操作
                var num = (document.activeElement.id).replace("d", "").replace("btn", "")  //獲取所在位置元素id
                if (num % 3 === 0) {
                }
                else if (num % 3 === 1) {
                    num = parseInt(num) + 2
                }
                else if (num % 3 === 2) {
                    num = parseInt(num) + 1
                }
                varnum = "#btn" + num
                $(varnum).click()
            }
        });
    </script>
</body>

</html>

輸出效果:值輸?shù)侥睦铮睦锞蜁@示出結(jié)果,無須點擊計算按鈕

最后把計算按鈕隱藏一下

    <button hidden class="btn" id="btn{{i}}">計算</button> <!-- id使用python計算 -->

本來還想做一下一鍵全部提交代碼、輸入完成后全數(shù)據(jù)提交代碼兩個功能,但發(fā)現(xiàn)這樣要提交的post值太多了,還是一次提交單個或單行數(shù)據(jù)比較靠譜

參考鏈接:

  • https://www.cnblogs.com/yangyi215/p/14964897.html
  • https://www.cnblogs.com/oldpai/p/9637774.html

總結(jié) 

到此這篇關于Django中使用AJAX的文章就介紹到這了,更多相關Django使用AJAX內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格

    python 中Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格

    這篇文章主要介紹了python Arduino串口傳輸數(shù)據(jù)到電腦并保存至excel表格,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • python利用requests庫進行接口測試的方法詳解

    python利用requests庫進行接口測試的方法詳解

    在python的標準庫中,雖然提供了urllib,utllib2,httplib,但是做接口測試,requests真心好,正如官方說的,“讓HTTP服務人類”,一言以蔽之,說明一切,這篇文章主要給大家介紹了關于python利用requests庫進行接口測試的相關資料,需要的朋友可以參考下
    2018-07-07
  • Python基礎知識之推導式詳解

    Python基礎知識之推導式詳解

    這篇文章主要介紹了Python基礎知識之推導式詳解,Python推導式是一種簡潔高效的代碼編寫方式,可以用一行代碼來創(chuàng)建列表、集合、字典等復雜數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2023-07-07
  • Python使用Chardet庫檢測字符編碼的操作詳解

    Python使用Chardet庫檢測字符編碼的操作詳解

    在處理文本數(shù)據(jù)時,字符編碼問題是一個常見的挑戰(zhàn),如果編碼不正確,可能會導致亂碼問題,而 Chardet 是 Python 中非常實用的一個庫,可以幫助我們快速檢測文件或字符串的編碼格式,本文給大家詳細介紹了Python Chardet 庫用法,需要的朋友可以參考下
    2025-01-01
  • django rest framework之請求與響應(詳解)

    django rest framework之請求與響應(詳解)

    下面小編就為大家?guī)硪黄猟jango rest framework之請求與響應(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助
    2017-11-11
  • Python編程判斷一個正整數(shù)是否為素數(shù)的方法

    Python編程判斷一個正整數(shù)是否為素數(shù)的方法

    這篇文章主要介紹了Python編程判斷一個正整數(shù)是否為素數(shù)的方法,涉及Python數(shù)學運算相關操作技巧,需要的朋友可以參考下
    2017-04-04
  • 淺談Python爬蟲基本套路

    淺談Python爬蟲基本套路

    這篇文章主要介紹了Python爬蟲基本套路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 爬蟲使用IP來隱藏真實地址的過程(python示例)

    爬蟲使用IP來隱藏真實地址的過程(python示例)

    這篇文章主要為大家介紹了爬蟲使用IP來隱藏真實地址的過程(python示例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Flaks基礎之在URL中添加變量的實現(xiàn)詳解

    Flaks基礎之在URL中添加變量的實現(xiàn)詳解

    這篇文章主要介紹了在python開發(fā)中,F(xiàn)laks框架之上在URL鏈接中添加變量的實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-09-09
  • Django request.META.get()獲取不到header頭的原因分析

    Django request.META.get()獲取不到header頭的原因分析

    這篇文章主要介紹了Django request.META.get()獲取不到header頭的原因分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

池州市| 福建省| 尼木县| 马公市| 巩留县| 建湖县| 台北县| 涟源市| 崇文区| 武汉市| 镇康县| 高台县| 内乡县| 来宾市| 县级市| 米脂县| 额尔古纳市| 司法| 柳州市| 孝义市| 大田县| 韶关市| 六盘水市| 乌拉特前旗| 宜春市| 饶平县| 临沂市| 繁峙县| 田林县| 水城县| 青田县| 阿荣旗| 井研县| 锡林浩特市| 隆化县| 平邑县| 若羌县| 禄丰县| 吉木乃县| 梁平县| 开鲁县|