Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierungsmethode zum Hochladen von Dateien mithilfe von Formularen in Django1.8

Implementierungsmethode zum Hochladen von Dateien mithilfe von Formularen in Django1.8

高洛峰
高洛峰Original
2017-02-22 11:04:261436Durchsuche

Es gibt viele verschiedene Web-Frameworks unter Python. Django ist der repräsentativste Schwergewichtsspieler. Viele erfolgreiche Websites und Apps basieren auf Django.

Django ist ein in Python geschriebenes Open-Source-Webanwendungs-Framework.

In Django können wir die Form-Klasse zum Verarbeiten von Formularen verwenden. Durch die Verwendung der Formularverarbeitungsmethode von Django können wir viel Arbeit sparen B. die Überprüfung, dass es nicht leer sein darf oder dass die Eingabe einem bestimmten Muster entsprechen muss, um gültig zu sein. Sie müssen daher keinen separaten Code schreiben, um die Richtigkeit der Formulardaten zu überprüfen Wird häufiger in der Entwicklung verwendet. Formular bietet viele Formularfelder wie Datum, Texttyp usw. Wenn Sie mit grundlegendem HTML vertraut sind, ist es sehr einfach, es zu erlernen, daher werden wir heute nicht jedes Formular erklären Aus diesem Grund werden wir heute nur über das Hochladen von Formulardateien sprechen. Der Typ ist etwas ganz Besonderes und erfordert eine spezielle Verarbeitung:

Zuerst verwenden wir Form, um ein einfaches Formular zu erstellen :

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

Dieses Formular hat nur 2 Felder, sodass der Benutzer einen Benutzernamen eingeben und eine Datei oder ein Bild hochladen muss.

Als nächstes fügen wir es in die Vorlage ein, um es zu rendern. Zu diesem Zeitpunkt können Sie eine Grundform sehen:

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})

Diese Funktion bestimmt, ob es sich bei der Anfrage des Benutzers um eine POST-Anfrage handelt. Wenn dies der Fall ist und die Überprüfung gültig ist, wird OK zurückgegeben. Setzen Sie unseren Upload-Dateicode zwischen der Überprüfung korrekt und der Rückgabe OK, da nur die Datei Der Upload kann OK zurückgeben. Wenn es sich um eine GET-Anfrage handelt, wird dem Benutzer direkt ein leeres Formular zur Eingabe angezeigt.

Bei der Verarbeitung hochgeladener Dateien wird eine Datei auf dem Server generiert und der Inhalt der hochgeladenen Datei in eine neue Datei geschrieben. Die Grundfunktion besteht also darin, das hochgeladene Dateiobjekt als Parameter zu empfangen und dann zu öffnen Erstellen Sie eine lokale Datei, lesen Sie die Datei aus der hochgeladenen Datei und schreiben Sie sie in eine neue Datei. Der Code lautet wie folgt:

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

Mit dieser Verarbeitung Funktion für hochgeladene Dateien können wir unsere Ansichtsfunktion weiter verbessern:

def register(request):
if request.method == "POST":
uf = UserForm(request.POST, request.FILES)
if uf.is_valid():
handle_uploaded_file(request.FILES['headImg'])
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():
handle_uploaded_file(request.FILES['headImg'])
return HttpResponse('ok')
else:
uf = UserForm()
return render(request, 'register.html', {'uf': uf})

Damit ist der Upload einer Datei abgeschlossen .

Das Obige ist das vom Herausgeber eingeführte Formular zum Hochladen einer Datei in Django 1.8. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten . Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!

Weitere Artikel zur Verwendung von Formularen zum Hochladen von Dateien in Django 1.8 finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn