標籤:return post info nqa cti init charset multipart render
基於form表單提交
# 需要指定form-data,不能直接拼索引值對
可以指定name照片存在位置
views.py
from django.shortcuts import render,redirect,HttpResponse# Create your views here.import osdef index(request): if request.method=="POST": print(request.POST) # post裡面只放索引值對 # < QueryDict: {‘csrfmiddlewaretoken‘:# [‘hS5bYNIkbNqazL7svWKxwrJXXY5sftIR1mxrMUMqox9diZS4bwz7Nn183Um8H0U8‘], ‘user‘: [‘6666‘], ‘f‘: [‘vzh.jpg‘]} > print(request.FILES) # <MultiValueDict: {‘f‘: [<InMemoryUploadedFile: vzh.jpg (image/jpeg)>]}> obj = request.FILES.get("f") # 取出上傳檔案的對象 name = obj.name # 具體檔案的名字 f_write = open(os.path.join("app01","static","img",name),"wb") # 如果想要將檔案存在某個具體的位置,將路徑拼接出來,再加上name # 如果只放name ,那麼檔案會存在當前的根目錄下 for line in obj: # 取出每一行的資料 f_write.write(line) return HttpResponse("111") return render(request,"index.html")def put(request): return HttpResponse("ok")
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title></head><body><h3>基於form表單上傳檔案</h3>{# form-data類型可以上傳檔案#}<form action="" method="post" ENCTYPE="multipart/form-data"> {% csrf_token %} <p><input type="text" name="user"></p> <p><input type="file" name="f"></p> <input type="submit"></form></body></html>index.html
注意點:
form表單<form action="" method="post" ENCTYPE="multipart/form-data">需要加ENCTYPE="multipart/form-data"form-data是可以用來上傳檔案
Python 之檔案上傳