需要使用request,OS,render_template,secure_filename

在模板办文件中,input的  type =  file

# 文件上传笔记:
1. 在模版中,form表单中,需要指定`encotype='multipart/form-data'`才能上传文件。
2. 在后台如果想要获取上传的文件,那么应该使用`request.files.get('avatar')`来获取。
3. 保存文件之前,先要使用`werkzeug.utils.secure_filename`来对上传上来的文件名进行一个过滤。这样才能保证不会有安全问题。 
4. 获取到上传上来的文件后,使用`avatar.save(路径)`方法来保存文件。、
5. 从服务器上读取文件,应该定义一个url与视图函数,来获取指定的文件。在这个视图函数中,使用`send_from_directory(文件的目录,文件名)`来获取。
示例代码如下:
```python
@app.route('/upload/',methods=['GET','POST'])
def upload():
    if request.method == 'GET':
        return render_template('upload.html')
    else:
        # 获取描述信息
        desc = request.form.get("desc")
        avatar = request.files.get("avatar")
        filename = secure_filename(avatar.filename)
        avatar.save(os.path.join(UPLOAD_PATH,filename))
        print(desc)
        return '文件上传成功'

@app.route('/images/<filename>/')
def get_image(filename):
    return send_from_directory(UPLOAD_PATH,filename)
```

### 对上传文件使用表单验证:
1. 定义表单的时候,对文件的字段,需要采用`FileField`这个类型。
2. 验证器应该从`flask_wtf.file`中导入。`flask_wtf.file.FileRequired`是用来验证文件上传是否为空。`flask_wtf.file.FileAllowed`用来验证上传的文件的后缀名。
3. 在视图文件中,使用`from werkzeug.datastructures import CombinedMultiDict`来把`request.form`与`request.files`来进行合并。再传给表单来验证。
示例代码如下:
```python
from werkzeug.datastructures import CombinedMultiDict
form = UploadForm(CombinedMultiDict([request.form,request.files]))
```

python上传文件相关推荐

  1. django + python上传文件的两种方式

    突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...

  2. 用Python上传文件

    Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的.相关的.不断增长的力量. Python只是一种语言,语言不 ...

  3. python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作

    '''百度首页搜索上传图片为例''' #前提条件 1.使用winspy定位绝对路径 #前提条件 2.安装库pywin32 采用pip安装pip install pywin32 或其他途径安装 #1.访 ...

  4. python上传文件到linux服务器_python上传大文件到服务器报错

    项目需要,在mac上将打包好的文件(四五百兆)自动上传到web后台,用了两种方式上传,都报了类似的错误,在windows和linux上测试不会报错,但是到了mac打包机上就会报错: ①第一种报错: T ...

  5. python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne

    基于Python的onedrive文件本地化浏览系统–PyOne PyOne是一款基于Python-Flask的onedrive文件本地化浏览系统,使用MongoDB储存文件列表,使用redis缓存数 ...

  6. pythonselenium上传图片视频_如何用selenium、python上传文件(图片)

    我添加了一个答案,任何人想使用处理恼人的msofiledialogs.这是对saravanan提出的解决方案的改进,但对Python来说更加充实. 我也遇到过类似的问题,我正在为一家公司做脚本.我试图 ...

  7. python上传文件进度_python实现进度条--主要用在上传下载文件

    在python中进行socket上传文件的时候使用进度条,然后在网上找了好久,找寻相关的进度的条的使用,看了几个,发现总是无法进行调用,主要原因是在进行上传文件的时候,每次传送的数据量是固定的,数据的 ...

  8. python上传文件到web

    python的requests发送/上传多个文件 2017年07月10日 13:45:32 阅读数:16133 1.需要的环境 Python2.X Requests 库 2.单字段发送单个文件 在re ...

  9. python上传文件到onedrive_PyOne——另一款支持OneDrive目录浏览的程序

    PyOne从名字就能得出是Python写的,和Onindex用PHP写的不一样.作者目前还是不停在更新和挖坑的,近期实现了添加多个OneDrive网盘的功能,未来将准备支持多用户功能.Oneindex ...

  10. python 上传文件夹,python – 使用Flask上传文件夹/文件

    我可以通过这个例子上传一个带烧瓶的文件: 但我不知道如何上传文件夹或一些文件.我搜索过,我发现了这个: Uploading multiple files with Flask.最后,我得到了如何上传多 ...

最新文章

  1. 微信网页开发 jssdk前后端代码,PHP实现完整代码,自定义分享
  2. nodejs http.get 方法可以 request 不行
  3. 存在于实数域无限维空间的分子
  4. java 爬虫 保存cookies_写爬虫,免不了要研究JavaScript设置cookies的问题
  5. java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
  6. 想进美团不知道选哪个技术岗位?这里有一份通关秘籍!
  7. PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
  8. 变频器说明书_图解变频器接线方法
  9. cathome 猫家 开发日记-底部导航
  10. postgre sql安装时忘记之前密码时如何处理。
  11. pandas基础知识--1
  12. 简单的python画图代码_常见的python画图简单代码
  13. 网络测速工具iperf使用介绍
  14. Python — sklearn 分类效果评估
  15. OCR+RFID感应识别电子护照阅读器|读卡器MERR100+的 API 接口函数说明
  16. Unity Shader - URP ShadowCast ShadowRecieve - 投影 和 接受阴影
  17. JAVA表示姓名和对应的出生日期
  18. [笔记]-后端学习笔记
  19. “OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案
  20. RocketMQ——ack机制保证消费成功

热门文章

  1. vscode 中的 Lammps Syntax Highlighting 插件
  2. atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
  3. 数据库系统概论-数据库编程与关系查询处理和查询优化
  4. 写一个小程序实现win系统定时锁屏
  5. kali下制作破解密码的字典
  6. 计算机主板详细维修,教你电脑主板维修必备基础知识
  7. 金蝶K3批量出库语句与执行方法
  8. 中兴服务器 raid,中兴LIS等直通阵列卡卡硬盘检测工具
  9. HADOOP学习_grep和wordcount的例子
  10. Sign in - CodeProject