Home > Article > Backend Development > Detailed explanation of uploading avatar to flask
The book Flask Web Development is basically finished, and I still need to review it later, but the blog I made always feels a bit crude, so I am using my brain to develop new functions
I thought of the most basic functions today , custom avatar
Such a function is designed into two basic function blocks
1: How to upload and save files
2: How to upload it in the user model Linking the avatar photo to the user
For the second question, after consulting online discussions, I came up with basically two methods.
The first is to convert the image into binary Store in the database
The second method is to store the image directly in the file system
Upload the avatar, I thought for a long time, just upload the file. In fact, There is a path, the database stores this path, and then displays it to the front end. Don’t say anything, let’s see how it is implemented.
The database settings are as follows
user_image=db.Column(db.String(252),nullable=True)
form form design:
avatar=FileField('头像')
Backend implementation code
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)
The storage path is
/static/avatar/,支持格式 pang、jpg、jpeg等格式,这个可以根据自己的需求进行设置。 存储后会在数据库存储一个路径 最后实现后数据库
The next is the front-end display
{% 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%}
Let me explain here, the code for uploading avatars in the backend here reports an error on Windows, saying that the file does not exist. I tried to modify it, but the path name should not be too long,
The path name can be short, but an error will be reported if it is long. Windows development has many drawbacks, but there is no problem in implementing it on Ubuntu
The above is the detailed content of Detailed explanation of uploading avatar to flask. For more information, please follow other related articles on the PHP Chinese website!