Django10:Ajax介紹/發送數據/SweetAlert

Ajax

異步提交

局部刷新

?

發送方式
1. 瀏覽器輸入url,按enter?????? get

2.a標簽href屬性?????????????????????? get

3.form表單??????????????????????????????? get/post

4. ajax?????????????????????????????????????? get/post

?

ajax 不是編程語言,是先有標準的新方法。

只學習jQuery封裝之后的版本(不學原生)

    $(".del").on("click", function () {// 向后端發送刪除的請求$.ajax({// 1.指定發送后端url: "/delete/",  //不寫,就是當前地址//請求方式type: "post",  //不指定,默認get,都是小寫// 數據data: {"id":delId},// 回調函數:返回結果時自動觸發,args是后端返回的結果success:function (arg) {swal(arg, "你可以跑路了!", "success");$trEle.remove();});});})

后端

def index(request):if request.method == 'POST':back_dic = {'msg':'hahaha'}return HttpResponse(json.dumps(back_dic))  #  要自己手動反序列化return JsonResponse(back_dic)  # 前端能自動反序列化return render(request,'index.html')
ajax補充:
dataType:'JSON'如果使用HttpResponse ,會自動轉換json格式

?

前后端交互的數據編碼格式

form表單默認是urlencoded編碼格式傳輸數據
urlencoded數據格式:username=jason&password=123django后端針對該格式的數據 會自動解析并幫你打包到request.POST中formdata數據格式:django后端針對符合urlencoded編碼格式數據(普通鍵值對)還是統一解析到request.POST中而針對formdata文件數據就會自動解析放到request.FILES中application/jsondjango后端針對json格式數據 并不會做任何的處理而是直接放在request.body中

?

ajax發送數據

?

默認urlencoded編碼格式

前后端數據交互 編碼格式與數據格式一定要一致
聲明什么編碼格式,就用傳什么格式

ajax發送json格式

$('#d2').on('click',function () {$.ajax({url:'',type:'post',contentType:'application/json',  // 修改content-Type參數data:JSON.stringify({'username':'jason','password':123}),  // 將數據序列化成json格式字符串success:function (data) {alert(data)}})})

補充:request.is_ajax();判斷是不是ajax請求

?

前端不會處理json格式的數據,而是直接塞進request.body中。我們自己處理json格式數據,拿到的是二進制json

def ab_ct(request):if request.method == 'POST':# 自己處理json格式數據json_bytes = request.body# 擴展 json.loads能夠自動解碼并序列化json_dict = json.loads(json_bytes)print(json_dict,type(json_dict))print(request.POST)print(request.FILES)return render(request,'ab_ct.html')

ajax發送json格式數據注意點

1.contentType:'application/json',

2. data 數據是真正的json數據

3.django后端不會處理json數據,需要手動request.body獲取和處理

?

ajax發送文件

ajax發送文件(******)內置對象FormData即發普通鍵值對也發文件// ajax發送文件數據  需要借助于內置對象$('#d3').click(function () {// 1 需要先生成一個內置對象var myFormData = new FormData();// 2 傳普通鍵值對  當普通鍵值對較多的時候 我們可以利用for循環來添加myFormData.append('username','jason');myFormData.append('password',123);// 3 傳文件myFormData.append('myfile',$('#i1')[0].files[0]);  // 獲取input框內部用戶上傳的文件對象// 發送ajax請求$.ajax({url:'',type:'post',data:myFormData,// 發送formdata對象需要指定兩個關鍵性的參數processData:false,  // 讓瀏覽器不要對你的數據進行任何的操作contentType:false,  // 不要使用任何編碼格式 對象formdata自帶編碼格式并且django能夠識別該對象success:function (data) {alert(data)}})})

?

SweetAlert

< script >
function Delete(obj) {var article_id = $(obj).attr("article_id"); {#console.log(article_id);#}swal({title: '確定刪除嗎?',text: '你將無法恢復它!',type: 'warning',showCancelButton: true,confirmButtonColor: '#d33',cancelButtonColor: '#3085d6',confirmButtonText: '確定!',}).then(function(value) {if (value.value) {$.ajax({url: "/JiaBlog/article/" + article_id + "/editor/delete/",type: 'POST',data: {csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val(),article_id: article_id,},success: function(result) {var status = result.result;if (status == 'success') {swal('刪除成功!', '你的文件已經被刪除。', 'success');} else {swal('出錯啦。。。', "error"); //后端刪除失敗}setTimeout(function() {window.location.reload()},1000);}})} else {swal('已取消!', '', 'error')}})
}< /script>/

?

參考:

https://www.cnblogs.com/guyouyin123/p/12173020.html

https://blog.csdn.net/ssjdoudou/article/details/90727543

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280593.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物聯網數據終端演進之道

智能手機的普及在最近幾年掀起了一股取代企業數據終端的風潮&#xff0c;但正如筆者在一年前便提到過 的&#xff0c;“智能手機難以在企業級應用中得以普及”&#xff0c;這種觀點最好的佐證便是時至今日&#xff0c;由于安全性與管理合規的需要&#xff0c;個人計算機用于企業…

mac 不能連接wi-fi_如何阻止Mac自動連接到Wi-Fi網絡

mac 不能連接wi-fiYour Mac automatically reconnects to Wi-Fi networks you’ve previously connected to. Starting with macOS High Sierra, you can now tell your Mac not to automatically connect to certain Wi-FI networks. Your Mac will remember the Wi-Fi networ…

“玩轉課堂”基本構想

1、項目背景隨著互聯網科技的高速發展&#xff0c;人們的生活、學習和工作中的許多事情都可以借助互聯網來完成&#xff0c;并且反響良好。作為學生&#xff0c;我們切身體會到&#xff0c;能夠使用網絡平臺來進行學習可以節約時間、并且十分方便&#xff1b;而在老師的角度&am…

SQLServer之分離數據庫

分離數據庫注意事項 要求具有 db_owner 固定數據庫角色中的成員資格。 可以分離數據庫的數據和事務日志文件&#xff0c;然后將它們重新附加到同一或其他 SQL Server實例。 如果要將數據庫更改到同一計算機的不同 SQL Server 實例或要移動數據庫&#xff0c;分離和附加數據庫會…

django11:自動序列化/批量插入數據/分頁器

自動序列化 借助serializers幫你自動完成序列化 from app01 import models from django.core import serializers def ab_se(request):user_queryset models.Userinfo.objects.all()#原始方法user_list []for user_obj in user_queryset:user_list.append({username:user_o…

羅漢塔最少步驟_如何以最少的步驟壓縮和密碼保護文件?

羅漢塔最少步驟If you have a large batch of files to compress and you want to add password protection to each of them, what is the simplest or quickest way to do so? Today’s SuperUser Q&A post has the answer to a curious reader’s question. 如果要壓縮…

IoTSharp中使用X509加密MQTT通訊并實現設備鑒權

IoTSharp支持MQTT協議通過 TLS 1.2 加密通訊&#xff0c; 并可以通過X509證書進行設備認證登錄。基本配置在 appsettings.Production.json中需要 指定域名&#xff0c; 并設置EnableTls為true"MqttBroker":{"DomainName":"http://demo.iotsharp.net:2…

IBM希望其“裁剪”過的Swift能夠引誘你使用BlueMix云

現在所有人都可以使用了——微軟頂尖的工程師表示&#xff0c;“呼吸新鮮的空氣吧&#xff01;” 據Stack Overflow的估計&#xff0c;Swift在最受歡迎的編程語言中排名第二&#xff0c;該語言已經出現在了IBM的BlueMix云平臺之上&#xff0c;供所有人使用。 她從今年二月份開始…

物理層、數據鏈路層、介質訪問控制子層

物理層 物理層定義了比特作為信號在信道上發送時相關的電氣、時序和其它接口&#xff0c;物理層是構建網絡的基礎。數據通信理論基礎&#xff1a;改變諸如電壓或者電流等某種物理特性的方法可用來在電線上傳輸信息&#xff0c;如果用一個以時間t為自變量的單值函數 f(t) 來表示…

如何批量刪除指定的GitHub Repos

正常情況下&#xff0c;如果需要刪除GitHub上不需要的repos&#xff0c;手動刪除的操作有點繁瑣。如果只要刪除一個還能接受&#xff0c;手動刪除多個repos就有點浪費時間了。其實我們可以通過GitHub的API接口來批量刪除不需要的repos。 將要刪除的repos按照username\repos-nam…

django12:form 組件/渲染標簽/數據校驗/鉤子函數/

基本用法 from django import forms# 自己寫一個類 class RegForm(forms.Form):username forms.CharField(min_length3,max_length8, label"用戶名")password forms.CharField(min_length3,max_length8,label"密碼")emailforms.EmailField() 1.校驗數據為…

如何快速擁有一個 Web IDE

本文將介紹如何使用 2-3 句指令在幾分鐘內創建一個 Web IDE 環境。服務器準備如何準備服務器可以參考上文 一鍵體驗 Istio&#xff0c;這里只需要一臺即可&#xff0c;示例中的服務器 IP 為&#xff1a;43.154.189.116安裝 Web IDE下載安裝工具在服務器上&#xff0c;執行以下指…

有了防火墻、IPS、WAF 還需要數據庫審計?

本文講的是 有了防火墻、IPS、WAF 還需要數據庫審計&#xff1f;&#xff0c;“我們的網絡安全系統中已經有了Web應用防火墻、網絡防火墻和IPS&#xff0c;難道還需要數據庫審計嗎&#xff1f;”很多人有這樣的疑問&#xff0c;網絡中有層層防護&#xff0c;還不能保護數據庫的…

20155339 Exp4 惡意代碼分析

20155339 Exp4 惡意代碼分析 實驗后回答問題 &#xff08;1&#xff09;如果在工作中懷疑一臺主機上有惡意代碼&#xff0c;但只是猜想&#xff0c;所有想監控下系統一天天的到底在干些什么。請設計下你想監控的操作有哪些&#xff0c;用什么方法來監控。 監控網絡連接。當某個…

Linux就該這么學---第七章(LVM邏輯卷管理器)

第七章節-LVM技術邏輯卷管理器(LVM,Logical Volume Manager)1.物理卷(PV,physical Volumn)2.卷組(VG,Volume Group)3.邏輯卷(LV,Logical Volume)基本單元[PE,Physical Extent] 物理卷處于LVM中的最底層&#xff0c;可以將其理解為物理硬盤、硬盤分區或者RAID磁盤陣列卷組建立在…

django13:Session與Cookie操作

Session與Cookie cookie 服務端保存在客戶端瀏覽器上的信息都可以教cookie 表現形式一般是k:v鍵值對&#xff08;可以多個&#xff09; 優化&#xff1a; 隨機字符串1&#xff1a;用戶1相關信息 隨機字符串2&#xff1a;用戶2相關信息 session 數據是保存在服務端 表現形…

從Windows XP升級? 這是您需要了解的Windows 7

With Windows XP reaching the end of its long support life, many businesses and individuals are avoiding Windows 8 and upgrading to Windows 7 instead. If you’re a latecomer to Windows 7, here are the basics you need to know. 隨著Windows XP使用壽命的延長&am…

Java迭代器原理

1迭代器模式 迭代器是一種設計模式&#xff0c;這種模式用于順序訪問集合對象的元素&#xff0c;不需要知道集合對象的底層表示。 一般實現方式如下&#xff1a;&#xff08;來自&#xff09; public interface Iterator {public boolean hasNext();public Object next(); } pu…

企業版Java EE正式易主 甲骨文再次放手

有人說甲骨文收購的東西大多沒有了好下場&#xff0c;這么說雖然有些片面&#xff0c;但是最近一個月Java EE和Solaris的境遇難免讓人產生類似的聯想。 繼筆者上次報道《甲骨文將放棄Java EE 開源基金會雙手歡迎》之后&#xff0c;最新消息顯示&#xff0c;原本在甲骨文手中的J…

js中各種位置

js中各種位置 js中有各種與位置相關的屬性,每次看到的時候都各種懵逼。索性一次總結一下。 clientHeight 內容可視區域的高度。包括padding不包括border、水平滾動條、margin。對于inline的元素這個屬性一直是0&#xff0c;單位px&#xff0c;只讀元素。offsetHeight offsetHei…