Django,Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传
生活随笔
收集整理的這篇文章主要介紹了
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除異步的特點外,還有瀏覽器頁面局部刷新功能。
?
發送請求給服務器的途徑
?
簡單的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('已執行') 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()每次讀取數據大小是穩定的 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的文件上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis缓存穿透-解决方案
- 下一篇: IDEA 2020年最后一个版本更新了,