flask文件上传

文件上传需要导入的模块
import os 系统模块,用于加载配置
from flask import Blueprint 蓝图
将Manager导入app(用于在控制台输入命令,flask不导入不能命令行运行)

from flask_script import Manager

manager=Manager(app)

将文件上传的配置信息存入一个py文件,这里用settings

import os


#得到当前系统路径
BASEDIR=os.getcwd()
#文件上传目录
UPLOAD_FOLDER=os.path.join(BASEDIR,'static/upload')

# 文件上传限制
ALLOWED_SUFFIX=['jpg','png','bmp','jpeg'] #限制文件后缀
ALLOWED_MAX_SIZE=1024*1024*2 # 文件大小限制

将settings配置文件引入app

app.config.from_pyfile("settings.py")

在views视图中创建蓝图

from flask import Blueprint

metoo=Blueprint('metoo',__name__,url_prefix='/app')  #蓝图名,__name__当前模块名,url_prefix路由前缀

app中注册蓝图

from views import metoo

app.register_blueprint(metoo)

views试图中写函数

@metoo.route('/advance/',methods=['POST'])
def advance_upload():
	#request 获取文件上传对象
    upload_obj=request.files.get('picture')
    # 验证文件类型
    if upload_obj and allowed_file(upload_obj.filename):
        #得到保存路径     current_app 代表应用程序对象,也就是app模块中的app
        path=os.path.join(current_app.config.get('UPLOAD_FOLDER'),upload_obj.filename)
        upload_obj.save(path)
        size=os.path.getsize(path)
        if size > current_app.config.get('ALLOWED_MAX_SIZE'):
            os.remove(path)
            return "文件大小不符合要求"
    else:
        return "文件不存在或者类型不符合要求"
    return "hhhh"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值