Dans Django, les données soumises via la page Html peuvent être obtenues via le paramètre request via la fonction définie dans View. En termes simples, il existe trois situations principales.
Les données uniques transmises à partir de la page HTML, telles que radiobox ou texte, peuvent être obtenues via request.POST.get
La page HTML transmet plusieurs données, telles qu'une case à cocher ou une option, qui peuvent être obtenues via request.POST.getlist
La page HTML télécharge un fichier et le côté html doit indiquer le type d'enctype, ce qui signifie qu'il s'agit d'un fichier au lieu d'une chaîne; l'arrière-plan doit obtenir l'adresse du fichier via request.FILES.get, puis écrire l'adresse spécifiée via le bloc
Jetons maintenant un œil à l'exemple:
Page HTML
upload.html
<! DOCTYPE html> <html lang = "en"> <head>
<meta charset = "UTF-8">
<title>Title</title></head> <body>
<form action = "/ upload /" method = "POST" enctype = "multipart / form-data">
<p>
<input type = "text" name = "user" placeholder = "用户 名" />
</p>
<p>
<input type = " password "name =" pwd "placeholder =" 密码 "/>
</p>
<p>
性别 :
男 <input type =" radio "name =" gender "value =" 1 "/>
女 <input type = "radio" name = "gender" value = "2" />
中 <input type = "radio" name = "gender" value = "3" />
</p>
<p>
爱好 :
音乐 <input type = "checkbox" name = "favor" value = "11" />
武术 <input type = "checkbox" name = "favor" value = "22" />
电玩 <input type = "checkbox" name = "favor" value = "33" />
</p>
<p>
<select name = "city" multiple>
<option value = "sh"> 上海 </option>
<option value = "bj"> 北京 </ option>
<option value = "tj"> 天津 </option>
</select>
</p>
<p>
<input type = "file" name = "fafafa "enctype =" multpart / form-data "/>
</p>
<input type =" submit "value =" 提交 "/>
</form></body> </html>
Afficher la fonction
view.py
def upload (request):
if request.method == "GET":
return render (request, 'upload.html')
elif request.method == "POST":
v = request.POST.get ('user')
print (v)
# radio
v = request.POST.get ('gender')
print (v)
v = request.POST.getlist ('favor')
print (v)
v = request.POST.getlist ('city')
print (v)
obj = request.FILES.get ('fafafa')
print (obj, type (obj), obj.name)
import os
file_path = os.path.join ('upload', obj.name)
print (file_path)
f = open (chemin_fichier,mode = "wb")
pour i dans obj.chunks ():
f.write (i)
f.close ()
from django.core.files.uploadedfile import InMemoryUploadedFile return render (request, 'upload.html')
else:
# PUT, DELETE, HEAD, OPTION ...
renvoyer la redirection ('/ upload /')
interface
Entrez les valeurs suivantes à soumettre
Obtenez des résultats avec succès
La vérification du système n'a identifié aucun problème (0 silencieux) 06 juillet 2017 - 15: 25: 56Django version 1.11, en utilisant les paramètres 'Django.settings'Démarrage du serveur de développement à http://127.0.0.1:8000/Quit le serveur avec CTRL BREAK. 阿拉丁 2 ['22 ',' 33 '] [' bj ',' tj '] déclarations.pdf <classe' django.core.files.uploadedfile.InMemoryUploadedFile '> déclarations.pdf
upload \ statements.pdf [06 / Jul / 2017 15:26:10] "POST / upload / HTTP / 1.1" 200 1267
Confirmer la réussite du téléchargement du fichier
Formation d'apprentissage frontale du système, tutoriels vidéo, itinéraires d'apprentissage, veuillez ajouter du prestige: haomei0452