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)
Formularformulardesign:
avatar=FileField('头像')
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)
ist
/static/avatar/,支持格式 pang、jpg、jpeg等格式,这个可以根据自己的需求进行设置。 存储后会在数据库存储一个路径 最后实现后数据库
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%}
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!