Maison >développement back-end >Tutoriel Python >Explication détaillée du téléchargement de l'avatar sur flask

Explication détaillée du téléchargement de l'avatar sur flask

零下一度
零下一度original
2017-07-17 14:00:071611parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn