Maison  >  Article  >  développement back-end  >  Méthode d'implémentation de téléchargement de fichiers à l'aide de formulaires dans Django1.8

Méthode d'implémentation de téléchargement de fichiers à l'aide de formulaires dans Django1.8

高洛峰
高洛峰original
2017-02-22 11:04:261436parcourir

Il existe de nombreux frameworks web différents sous Python. Django est le plus représentatif des joueurs poids lourds. De nombreux sites Web et applications à succès sont basés sur Django.

Django est un framework d'application web open source écrit en Python.

Dans Django, nous pouvons utiliser la classe Form pour traiter les formulaires. En instanciant et en rendant dans des modèles, nous pouvons facilement remplir les exigences du formulaire. L'utilisation de la méthode de traitement de formulaire de Django peut nous aider à économiser beaucoup de travail, par exemple. comme vérifier qu'il ne peut pas être vide ou que l'entrée doit correspondre à un certain modèle pour être valide. Ces éléments sont très pratiques à gérer. Vous n'avez pas besoin d'écrire du code séparé pour vérifier l'exactitude des données du formulaire. plus couramment utilisé dans le développement, Form fournit de nombreux champs de formulaire, tels que la date, le type de texte, etc., si vous êtes familier avec le HTML de base, il sera très facile à apprendre, nous n'allons donc pas expliquer chaque formulaire aujourd'hui. champ un par un. Aujourd'hui, nous ne parlerons que du téléchargement de fichiers de formulaire, à cause de cela. Le type est assez spécial et nécessite un traitement spécial :

Nous utilisons d'abord Form pour créer un formulaire simple. :

class UserForm(forms.Form):
username = forms.CharField(required=False)
headImg = forms.FileField()
class UserForm(forms.Form):
username = forms.CharField(required=False)
headImg = forms.FileField()

Ce formulaire ne comporte que 2 champs, obligeant l'utilisateur à saisir un nom d'utilisateur et à télécharger un fichier ou une image.

Ensuite, nous le mettons dans le modèle à rendre. À ce stade, vous pouvez voir un formulaire de base. La fonction d'affichage est la suivante :

def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
#放上传文件的代码
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})
def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
#放上传文件的代码
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})

<.>

Cette fonction détermine si la demande de l'utilisateur est une demande POST. Si c'est le cas et que la vérification est valide, alors elle renvoie OK. Mettez notre code de fichier de téléchargement entre la vérification est correcte et le retour OK, car seul le fichier. le téléchargement peut renvoyer OK, nous dirons que s'il s'agit d'une requête GET, un formulaire vide s'affichera directement pour que l'utilisateur puisse saisir.

Le traitement des fichiers téléchargés consiste à générer un fichier sur le serveur et à écrire le contenu du fichier téléchargé dans un nouveau fichier, sa fonction de base est donc la suivante, recevoir l'objet fichier téléchargé en tant que paramètre, puis ouvrir un fichier localement, lisez le fichier à partir du fichier téléchargé et écrivez-le dans un nouveau fichier :

def handle_uploaded_file(f):
with open(&#39;/server/testform/upload/&#39; + f.name, &#39;wb+&#39;) as destination:
for chunk in f.chunks():
destination.write(chunk)
def handle_uploaded_file(f):
with open(&#39;/server/testform/upload/&#39; + f.name, &#39;wb+&#39;) as destination:
for chunk in f.chunks():
destination.write(chunk)

Avec ce traitement. fonction pour les fichiers téléchargés, nous pouvons encore améliorer notre fonction d'affichage. Le code final est le suivant :

def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
handle_uploaded_file(request.FILES[&#39;headImg&#39;])
return HttpResponse(&#39;ok&#39;)
else:
uf = UserForm()
return render(request, &#39;register.html&#39;, {&#39;uf&#39;: uf})
def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
handle_uploaded_file(request.FILES[&#39;headImg&#39;])
return HttpResponse(&#39;ok&#39;)
else:
uf = UserForm()
return render(request, &#39;register.html&#39;, {&#39;uf&#39;: uf})

De cette façon, le téléchargement d'un fichier. est terminé.

Ce qui précède est le fichier de téléchargement de formulaire dans Django 1.8 introduit par l'éditeur. J'espère qu'il vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. . Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles sur la façon d'utiliser les formulaires pour télécharger des fichiers dans Django 1.8, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn