Flask Web开发学习笔记(9)

本文详细介绍了在Flask中进行单文件和多文件上传的方法。使用Flask-WTF库创建表单,通过FileField和相关验证器确保文件上传的安全。在视图函数中,设置文件保存路径并接收保存文件。对于多文件上传,可以通过添加multiple属性启用多选功能,并使用MultipleFileField字段,但需注意验证方式的调整。
摘要由CSDN通过智能技术生成

老规矩,贴一篇文章:flask 文件上传(单文件上传、多文件上传)
以下部分例子参考此文

1.单文件上传

我们可以在配置信息中设置限制文件大小

app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024

当上传文件的大小超过这个限制后,flask内置的开服务器会中断连接,在生产环境的服务器上会返回413错误响应。

使用Flask-WTF

① 创建表单

from flask_wtf import FlaskForm
from flask_wtf.file import FileRequired, FileAllowed
from wtforms import SubmitField, FileField

class IconForm(FlaskForm):
    icon = FileField('头像', validators=[FileRequired(message='请选择文件'), FileAllowed(['jpg','jpeg','png','gif'])])
    submit = SubmitField('上传')

我们使用 Flask-wtf 提供的 FileField类实现文件上传

过滤器 FileRequired 检验文件是否存在,FileAllowed 设置允许上传的文件类型

② 视图函数

@main.route('/edit-icon', methods=['GET','POST'])
@login_required
def edit_icon():
    form = IconForm()
    if form.validate_on_submit():
        f = form.icon.data
        f.save(r'app/static/user_icon/'+ current_user.username + '.jpg')
        current_user.icon = 'user_icon/' + current_user.username + '.jpg'
        db.session.add(current_user)
        d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值