Flask 上传自定义头像

本文介绍了如何使用Flask框架实现用户自定义头像上传功能,包括文件上传、保存路径设置、文件类型限制、secure_filename()函数确保文件安全以及上传后立即预览的实现。通过request.files获取FileStorage对象,并使用save()方法保存文件,同时展示了遇到非允许文件类型时的错误处理。最后,利用send_from_directory()函数实现上传文件的即时预览。
摘要由CSDN通过智能技术生成

Flask Web 开发这本书基本上做完了,后面还需要温习,但是自己做的博客总觉得简陋了点,所以,在动脑子开发新功能

今天想到最基本的功能,自定义头像

那这样的功能,设计到2大基本功能块

1:如何进行文件的上传和保存

2:如何在用户模型里面将头像照片和用户挂钩起来


第二个问题我在查阅了网上的讨论后,得出基本上2种方法,

第一种是将图片变成二进制以后存入数据库

第二种是将图片直接存放于文件系统中


先研究如何上传文件成功这个事情

从最简单的开始

在main的views文件内,添加以下准备工作

import os
from flask import Flask, request, redirect, url_for

UPLOAD_FOLDER=r'E:\flasky\app\upload'

设置UPLOAD_FOLDER的路径,表示文件最终要存在哪一个位置


@main.route('/upload_file',methods = ['GET','POST'])
def upload_file():

#...
	if request.method == 'POST':
		file = request.files['file']
		file.save(os.path.join(UPLOAD_FOLDER,file.filename))
		return '<p>success</p>'
	return '''
	<!DOCTYPE html>
	<title>Change new icon</title>
	<h1>Upload new </h1>
	<form action = "" method = "post" enctype=multipart/form-data>
		<input type = "file" name = file>
		<input type = "submit" value = Upload>
	</form>
	'''


然后为上传文件功能单独做一个路由,是专门用一个页面来提供上传文件

file=request.files['file']表示,从request请求的files字典中,取出

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值