Heim > Backend-Entwicklung > Python-Tutorial > Ausführliche Erklärung zum Hochladen eines Avatars in Flask

Ausführliche Erklärung zum Hochladen eines Avatars in Flask

零下一度
Freigeben: 2017-07-17 14:00:07
Original
1641 Leute haben es durchsucht

Das Buch Flask Web Development ist im Grunde genommen fertig und ich muss es später noch rezensieren, aber der Blog, den ich erstellt habe, fühlt sich immer etwas grob an, also benutze ich mein Gehirn, um neue Funktionen zu entwickeln

dachte ich einer der grundlegendsten Funktionen heute, benutzerdefinierter Avatar

Eine solche Funktion ist in zwei grundlegende Funktionsblöcke unterteilt

1: So laden Sie Dateien hoch und speichern sie

2: So laden Sie hoch Dateien im Benutzermodell Avatar-Fotos mit Benutzern verknüpfen

Was die zweite Frage betrifft, habe ich mir nach Rücksprache mit Online-Diskussionen grundsätzlich zwei Methoden ausgedacht

Die erste besteht darin, das Bild in eine Binärdatei umzuwandeln In der Datenbank speichern

Die zweite Methode besteht darin, das Bild direkt im Dateisystem zu speichern


Das habe ich mir schon lange überlegt Es wird lediglich die Datei hochgeladen. Tatsächlich gibt es einen Pfad. Die Datenbank speichert diesen Pfad und zeigt ihn dann im Frontend an. Sagen Sie nichts, schauen wir uns an, wie er implementiert wird.

Die Datenbankeinstellungen lauten wie folgt

user_image=db.Column(db.String(252),nullable=True)
Nach dem Login kopieren

Formularformulardesign:

avatar=FileField('头像')
Nach dem Login kopieren

Der Speicherpfad des End-End-Implementierungscodes

 avatar=request.files['avatar']
 fanme=avatar.filename
 upfile=os.getcwd()+('/app/static/avatar/')
 ALLOWER_EXIT=['pang','jpg','jpeg','jig']
flag='.' in fanme and fanme.split('.')[1] in ALLOWER_EXITif not flag:     return render_template('editperson.html',form=form)
 avatar.save('{}{}{}'.format(upfile,user.username,fanme))
 user.user_image='/static/avatar/{}{}'.format(user.username,fanme)
 db.session.add(user)
Nach dem Login kopieren

ist

/static/avatar/,支持格式 pang、jpg、jpeg等格式,这个可以根据自己的需求进行设置。 
存储后会在数据库存储一个路径
最后实现后数据库
Nach dem Login kopieren

Der nächste ist der Front-End-Anzeige

{% if username.user_image%}<img   src="{{username.user_image}}" style="height:80px;">{%else%}<img src="/static/img/0.jpg" style="height:70px;width:80px">{%endif%}
Nach dem Login kopieren

Lassen Sie mich hier erklären, dass der Backend-Code hier zur Implementierung des hochgeladenen Avatars unter Windows einen Fehler gemeldet hat und besagt, dass die Datei dies tut nicht vorhanden, ich habe versucht, ihn zu ändern, es ist der Pfad. Der Name sollte nicht zu lang sein.

Ein kurzer Pfadname ist in Ordnung. Es gibt viele Nachteile bei der Windows-Entwicklung, aber die Implementierung unter Ubuntu ist kein Problem

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Hochladen eines Avatars in Flask. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage