Le frontal de Django soumet des données à un message d'arrière-plan

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.


  1. Les données uniques transmises à partir de la page HTML, telles que radiobox ou texte, peuvent être obtenues via request.POST.get

  2. La page HTML transmet plusieurs données, telles qu'une case à cocher ou une option, qui peuvent être obtenues via request.POST.getlist

  3. 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

wKioL1ldy6viwlKpAABjBmpovbE418.jpg

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

wKiom1ldy63Ad6QTAACL_l5XBXU868.jpg

Formation d'apprentissage frontale du système, tutoriels vidéo, itinéraires d'apprentissage, veuillez ajouter du prestige: haomei0452


Je suppose que tu aimes

Origine blog.51cto.com/14895198/2546362
conseillé
Classement