日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传

發(fā)布時間:2025/3/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSON

    • JSON指的是JavaScript對象方法(JavaScript Object Notation)
    • JSON是輕量級的文本數據交換格式
    • JSON獨立于語言
    • JSON具有自我i描述,更易理解

?

Ajax

     AJAX(Asynchronous Javascript And XML) 翻譯內容即“異步Javascript和XML”。即使用Javascript語言與服          務器機型異步交互,傳輸數據為XML。 ? PS:傳輸數據不知是XML,JSON數據更常用

     AJAX除異步的特點外,還有瀏覽器頁面局部刷新功能。

?

發(fā)送請求給服務器的途徑

  • 地址欄:get
  • form表單:支持get與post
  • 超鏈接:click是get方式
  • Ajax請求:可以指定get和post PS:發(fā)Ajax請求一半返回HttpResponse()
  • ?

    簡單的Ajax請求

      ? 修改views視圖

    1 from django.shortcuts import render,HttpResponse,redirect 2 from django.views import View 3 4 # Create your views here. 5 6 class Upload(View): 7 def get(self,request): 8 return render(request,'upload.html') 9 def post(self,request): 10 print('已執(zhí)行') 11 return HttpResponse('提交成功') View Code

      ? 修改HTML

    {% load static %} <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> {% csrf_token %} <input type="text" name="usm"><br> <input type="password" name="pwd"><br> <input type="file" name="file"><br> <input type="button" value="提交" id="btn"><br> <span class="conent"></span> <script src="{% static 'js/jquery-3.4.1.js' %}"></script></body> <script>$('#btn').click(function () {var csrf_data=$('[name=csrfmiddlewaretoken]').val();console.log(csrf_data);$.ajax({url:'{% url "upload" %}',type:'post',data:{csrfmiddlewaretoken:csrf_data},success:function (response) {$('.conent').text(response);alert(response)}})}) </script> </html> View Code

      ? 修改urls路由

    from django.conf.urls import url from django.contrib import admin from app01 import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'upload/',views.Upload.as_view(),name='upload'), ] View Code

    ?

    基于Ajax的文件傳輸

       修改views視圖

    from django.shortcuts import render,HttpResponse,redirect from pydiango4 import settings from django.http import JsonResponse import os# Create your views here.def login(request):return render(request,'login.html')def index(request):# if request.method=='POST':# print('ok')print('已跳轉')usm=request.POST.get('usm')pwd=request.POST.get('pwd')print(usm,pwd)if usm=='wmm' and pwd=='123':return HttpResponse('1')else:return HttpResponse('no')def upload(request):if request.method=='POST':file_obj=request.FILES.get('hede')# 接收文件用FILES而不是POST/GETpath=os.path.join(settings.BASE_DIR,'static_file','img',file_obj.name)with open(path,'wb')as f:for chunks in file_obj.chunks():# chunks()每次讀取數據大小是穩(wěn)定的 f.write(chunks)dic={'asd':12,'zxc':15}return JsonResponse(dic,safe=True)# JsonResponse()用于將數據轉化為json數據并返回# safe=True 當傳輸數據 非字典 類型時需要safe=False View Code

       修改HTML

    {% load static %} <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <form method="post" action="{% url 'upload' %}" enctype="multipart/form-data">{% csrf_token %}<input type="file" name="hede"><input type="submit" id="btn"> </form> </body> <script src="{% static 'js/jquery-3.4.1.js' %}"></script> <script> $('#btn').click(function(){var formdata=new FormData();var file=$('[name=hede]')[0].files[0];var csrf_data=$('[name=csrfmiddlewaretoken]').val();formdata.append('file',file);formdata.append('csrfmiddlewaretoken',csrf_data);$.ajax({url:'{% url "login" %}',type:'post',data:formdata,processData:false,contentType:false,success:function () {}}) })</script> </html> View Code

       修改urls路由

    from django.conf.urls import url from django.contrib import admin from app01 import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'login/',views.login,name='login'),url(r'index/',views.index,name='index'),url(r'upload/',views.upload,name='upload'), ] View Code

    ?

    轉載于:https://www.cnblogs.com/lttlpp61007188/p/10950877.html

    總結

    以上是生活随笔為你收集整理的Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。