


Django-Projekt: Praktischer Benutzer-Avatar-Upload und Zugriff
In diesem Artikel werden hauptsächlich praktische Beispiele für das Hochladen und Zugreifen auf Benutzeravatare in Django-Projekten vorgestellt. Jetzt teile ich sie mit Ihnen und gebe ihnen eine Referenz. Werfen wir gemeinsam einen Blick darauf
1 Speichern Sie die Datei lokal auf dem Server
upload.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %} <p>用户名:<input type="text" name="username"></p> <p>头像<input type="file" name="avatar"></p> <input type="submit" value="提交"> </form> </body> </html>
urls.py
from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^upload',views.upload) ]
views.py
from django.shortcuts import render,HttpResponse def upload(request): if request.method == 'POST': name = request.POST.get('username') avatar = request.FILES.get('avatar') with open(avatar.name,'wb') as f: for line in avatar: f.write(line) return HttpResponse('ok') return render(request,'upload.html')
Zusammenfassung
Auf diese Weise haben wir ein einfaches kleines Beispiel für das Hochladen von Dateien erstellt. Hier sind einige Punkte zu beachten:
1. Die csrf_token-Überprüfung muss dem Formular hinzugefügt werden
2. Der Typwert des Eingabefelds der Datei ist Datei
3. Um die Datei in der Ansichtsfunktion abzurufen, verwenden Sie request.FILES .get()-Methode
4 . Der Name der Datei kann über obj.name abgerufen werden
2 Laden Sie die Datei in die Datenbank hoch
models.py
from django.db import models class User(models.Model): username = models.CharField(max_length=16) avatar = models.FileField(upload_to='avatar')
views.py
def upload(request): if request.method == 'POST': name = request.POST.get('username') avatar = request.FILES.get('avatar') models.User.objects.create(username=name,avatar=avatar) return HttpResponse('ok') return render(request,'upload.html')
Zusammenfassung
Die Funktion zum Hochladen von Dateien in die Datenbank wurde oben implementiert. Es sind einige Punkte zu beachten:
1. Die Das sogenannte Hochladen in die Datenbank bedeutet nicht, das Bild selbst oder den Binärcode in der Datenbank abzulegen. Tatsächlich wird die Datei lokal auf den Server hochgeladen, sodass der Benutzer dies nur wünscht Um die Datei aufzurufen, kann er über den Pfad
2 zum vom Server angegebenen Speicherort gehen. Beim Erstellen eines ORM muss das Avatar-Feld vorhanden sein. Es gibt ein Attribut upload_to='', das angibt, wo die hochgeladenen Dateien abgelegt werden sollen Datei
3. Beim Hinzufügen zur Datenbank entspricht die Zuweisung des Dateifeldattributs der Form des normalen Felds, z. B. models.User.objects create(username=name,avatar=avatar)
4 . Wenn die von zwei Benutzern hochgeladenen Dateinamen identisch sind, benennt das System die Datei automatisch um:
Zusätzlich
Funktion wurde implementiert. Wenn wir die Datei aufrufen, müssen wir anscheinend nur über die Datei selbst auf das Bild zugreifen, das im Datenbankdateipfad gespeichert wurde auf der Webseite angezeigt wird, ist dies nicht der Fall.
Wir müssen einige Dinge konfigurieren, damit Django es finden kann, andernfalls besteht es die URL-Überprüfung nicht, und der Grund, warum wir es finden können Der direkte Zugriff auf statische Dateien in static liegt daran, dass Django bereits für uns konfiguriert wurde.
Die Konfigurationsschritte sind wie folgt:
1. Konfigurieren Sie
in den Einstellungen der Site .py
MEDIA_ROOT=os.path.join(BASE_DIR,"blog","media") #blog是项目名,media是约定成俗的文件夹名 MEDIA_URL="/media/" # 跟STATIC_URL类似,指定用户可以通过这个路径找到文件
2. Konfigurieren Sie in urls.py
from django.views.static import serve from upload import settings #upload是站点名 url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
Nach der Konfiguration , Sie können über http://127.0.0.1:8001/media/milk.png auf das Bild zugreifen
3 Verwenden Sie AJAX, um Dateien einzureichen
upload.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form> {% csrf_token %} <p>用户名:<input id="name-input" type="text"></p> <p>头像<input id="avatar-input" type="file"></p> <input id="submit-btn" type="button" value="提交"> </form> <script src="/static/js/jquery-3.2.1.min.js"></script> <script> $('#submit-btn').on('click',function () { formdata = new FormData(); formdata.append('username',$('#name-input').val()); formdata.append("avatar",$("#avatar")[0].files[0]); formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val()); $.ajax({ processData:false,contentType:false,url:'/upload', type:'post', data:formdata,success:function (arg) { if (arg.state == 1){ alert('成功!') } else { alert('失败!') } } }) }); </script> </body> </html>
views.py
from django.shortcuts import render,HttpResponse from django.http import JsonResponse from app01 import models def upload(request): if request.method == 'POST': name = request.POST.get('username') avatar = request.FILES.get('avatar') try: models.User.objects.create(username=name,avatar=avatar) data = {'state':1} except: data = {'state':0} return JsonResponse(data) return render(request,'upload.html')
Zusammenfassung
1. Beim Hochladen mit Ajax darf die Eingabeschaltfläche nicht „Senden“ verwenden.
2 Beim Hochladen mit Ajax ist der Wert des Datenparameters kein Wert mehr gewöhnlicher Wörterbuchtypwert, aber ein FormData-Objekt
Objekt formdata = new FormData();
Wert formdata hinzufügen ('username',$('#name-input').val());
3. Ajax muss beim Einreichen von Beiträgen eine CSRF-Überprüfung hinzufügen
formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val());
4 Dateien hochlädt, müssen zwei Parametereinstellungen vorhanden sein:
processData:false
contentType:false
4 Beim Hochladen von Bilddateien gibt es eine Vorschaufunktion
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form> <!----用一个label标签将上传文件输入框跟图片绑定一起, 点击图片的时候就相当于点击了上传文件的按钮----> <label><img id="avatar-img" src="/static/img/default.png" width="80px" height="80px"> <p>头像<input id="avatar-input" hidden type="file"></p> </label> <input id="submit-btn" type="button" value="提交"> </form> <script src="/static/js/jquery-3.2.1.min.js"></script> <script> // 上传文件按钮(label里的图片)点击事件 $('#avatar-input').on('change',function () { // 获取用户最后一次选择的图片 var choose_file=$(this)[0].files[0]; // 创建一个新的FileReader对象,用来读取文件信息 var reader=new FileReader(); // 读取用户上传的图片的路径 reader.readAsDataURL(choose_file); // 读取完毕之后,将图片的src属性修改成用户上传的图片的本地路径 reader.onload=function () { $("#avatar-img").attr("src",reader.result) } }); </script>
5 Zusammenfassung
Beim Datei-Upload, egal ob es sich um eine direkte Formularübermittlung oder eine Ajax-Übermittlung handelt, besteht das grundlegende Problem darin, dem Browser mitzuteilen, dass es sich bei dem, was Sie hochladen möchten, um eine Datei und nicht um eine gewöhnliche Zeichenfolge handelt
Dies können Sie dem Browser mitteilen, indem Sie den ContentType-Parameter des Gewichts anfordern. Wir müssen ihn beim Hochladen einer normalen Zeichenfolge nicht angeben, da er einen Standardwert hat.
Wenn Sie Wenn Sie Dateien übertragen möchten, müssen Sie dies separat angeben. Um die folgenden Punkte zusammenzufassen
1. Für den Formular-Upload wird ContentType durch enctype="multipart/form-data" angegeben
2. Für den Ajax-Upload wird ContentType durch processData:false und contentType:false
angegeben 3. Beim Hochladen des Formulars werden die Dateidaten durch das Tag umschlossen. 4. Beim Hochladen des Ajax werden die Daten durch eine FormData-Instanz hinzugefügt Objekt. Übergeben Sie einfach dieses Objekt, wenn Sie es übergeben
5. Nachdem die Daten übergeben wurden, werden sie in request.FILES statt in request.POST gekapselt
Wie Django CSS- und JS-Dateien und statische Bilder lädt
Detaillierte Erläuterung der Verwendung von Django-Steuerelementen und der Übergabe von Parametern
Das obige ist der detaillierte Inhalt vonDjango-Projekt: Praktischer Benutzer-Avatar-Upload und Zugriff. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der rasanten Entwicklung der sozialen Medien hat sich Xiaohongshu zu einer der beliebtesten sozialen Plattformen entwickelt. Benutzer können ein Xiaohongshu-Konto erstellen, um ihre persönliche Identität zu zeigen und mit anderen Benutzern zu kommunizieren und zu interagieren. Wenn Sie die Xiaohongshu-Nummer eines Benutzers finden müssen, können Sie diese einfachen Schritte befolgen. 1. Wie verwende ich das Xiaohongshu-Konto, um Benutzer zu finden? 1. Öffnen Sie die Xiaohongshu-App, klicken Sie auf die Schaltfläche „Entdecken“ in der unteren rechten Ecke und wählen Sie dann die Option „Notizen“. 2. Suchen Sie in der Notizenliste nach der Notiz, die von dem Benutzer gepostet wurde, den Sie suchen möchten. Klicken Sie hier, um die Seite mit den Notizdetails aufzurufen. 3. Klicken Sie auf der Seite mit den Notizdetails auf die Schaltfläche „Folgen“ unter dem Avatar des Benutzers, um zur persönlichen Homepage des Benutzers zu gelangen. 4. Klicken Sie in der oberen rechten Ecke der persönlichen Homepage des Benutzers auf die Schaltfläche mit den drei Punkten und wählen Sie „Persönliche Informationen“.

In Ubuntu-Systemen ist der Root-Benutzer normalerweise deaktiviert. Um den Root-Benutzer zu aktivieren, können Sie mit dem Befehl passwd ein Passwort festlegen und sich dann mit dem Befehl su- als Root anmelden. Der Root-Benutzer ist ein Benutzer mit uneingeschränkten Systemadministratorrechten. Er verfügt über Berechtigungen zum Zugriff auf und zum Ändern von Dateien, zur Benutzerverwaltung, zum Installieren und Entfernen von Software sowie zum Ändern der Systemkonfiguration. Es gibt offensichtliche Unterschiede zwischen dem Root-Benutzer und normalen Benutzern. Der Root-Benutzer verfügt über die höchste Autorität und umfassendere Kontrollrechte im System. Der Root-Benutzer kann wichtige Systembefehle ausführen und Systemdateien bearbeiten, was normale Benutzer nicht können. In dieser Anleitung werde ich den Ubuntu-Root-Benutzer untersuchen, wie man sich als Root anmeldet und wie er sich von einem normalen Benutzer unterscheidet. Beachten

sudo (Superuser-Ausführung) ist ein Schlüsselbefehl in Linux- und Unix-Systemen, der es normalen Benutzern ermöglicht, bestimmte Befehle mit Root-Rechten auszuführen. Die Funktion von sudo spiegelt sich hauptsächlich in den folgenden Aspekten wider: Bereitstellung von Berechtigungskontrolle: sudo erreicht eine strikte Kontrolle über Systemressourcen und sensible Vorgänge, indem es Benutzern erlaubt, vorübergehend Superuser-Berechtigungen zu erhalten. Normale Benutzer können über sudo bei Bedarf nur vorübergehende Berechtigungen erhalten und müssen sich nicht ständig als Superuser anmelden. Verbesserte Sicherheit: Durch die Verwendung von sudo können Sie die Verwendung des Root-Kontos bei Routinevorgängen vermeiden. Die Verwendung des Root-Kontos für alle Vorgänge kann zu unerwarteten Systemschäden führen, da für jeden fehlerhaften oder nachlässigen Vorgang die vollen Berechtigungen gewährt werden. Und

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

Analyse des Speichermechanismus für Benutzerkennwörter im Linux-System Im Linux-System ist die Speicherung des Benutzerkennworts einer der sehr wichtigen Sicherheitsmechanismen. In diesem Artikel wird der Speichermechanismus von Benutzerkennwörtern in Linux-Systemen analysiert, einschließlich der verschlüsselten Speicherung von Kennwörtern, des Kennwortüberprüfungsprozesses und der sicheren Verwaltung von Benutzerkennwörtern. Gleichzeitig wird anhand konkreter Codebeispiele der tatsächliche Ablauf der Passwortspeicherung demonstriert. 1. Verschlüsselte Speicherung von Passwörtern In Linux-Systemen werden Benutzerpasswörter nicht im Klartext im System gespeichert, sondern verschlüsselt und gespeichert. L

Nach der Registrierung eines Win10-Kontos haben viele Freunde das Gefühl, dass ihre Standard-Avatare nicht sehr gut aussehen. Aus diesem Grund möchten sie ihre Avatare ändern. Wenn Sie es wissen möchten, können Sie dies tun Kommen Sie und schauen Sie es sich an. So ändern Sie den Win10-Kontonamen und den Avatar: 1. Klicken Sie zunächst auf die untere linke Ecke, um zu starten. 2. Klicken Sie dann oben im Popup-Menü auf den Avatar. 3. Klicken Sie nach der Eingabe auf „Kontoeinstellungen ändern“. 4. Klicken Sie dann unter dem Avatar auf „Durchsuchen“. 5. Suchen Sie das Foto, das Sie als Avatar verwenden möchten, und wählen Sie es aus. 6. Schließlich ist die Änderung erfolgreich abgeschlossen.

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren
