Maison >développement back-end >Tutoriel Python >Explication détaillée du téléchargement de l'avatar sur flask
Le livre Flask Web Development est pratiquement terminé, et je dois encore le relire plus tard, mais le blog que j'ai créé semble toujours un peu grossier, alors j'utilise mon cerveau pour développer de nouvelles fonctions
Je pensais des fonctions les plus basiques aujourd'hui, avatar personnalisé
Une telle fonction est conçue en 2 blocs fonctionnels de base
1 : Comment télécharger et enregistrer des fichiers
2 : Comment télécharger fichiers dans le modèle utilisateur Lier les photos d'avatar aux utilisateurs
Quant à la deuxième question, après avoir consulté des discussions en ligne, j'ai trouvé essentiellement deux méthodes
La première consiste à convertir l'image en binaire. Stocker dans la base de données
La deuxième méthode consiste à stocker l'image directement dans le système de fichiers
Télécharger l'avatar. Je pensais depuis longtemps que. il s'agit simplement de télécharger le fichier. En fait, il y a un chemin, la base de données stocke ce chemin, puis l'affiche au front-end. Ne dites rien, voyons comment il est implémenté.
Les paramètres de la base de données sont les suivants
user_image=db.Column(db.String(252),nullable=True)
conception du formulaire :
avatar=FileField('头像')
Le chemin de stockage du code d'implémentation de fin
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)
est
/static/avatar/,支持格式 pang、jpg、jpeg等格式,这个可以根据自己的需求进行设置。 存储后会在数据库存储一个路径 最后实现后数据库
Le suivant est le affichage frontal
{% 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%}
Laissez-moi vous expliquer ici, le code backend ici pour implémenter l'avatar téléchargé a signalé une erreur sous Windows, disant que le fichier le fait n'existe pas, j'ai essayé de le modifier, c'est le chemin. Le nom ne doit pas être trop long
Un nom de chemin court convient. S'il est trop long, une erreur sera signalée. Le développement Windows présente de nombreux inconvénients, mais son implémentation sur Ubuntu ne pose aucun problème
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!