python上传文件
需要使用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上传文件相关推荐
- django + python上传文件的两种方式
突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...
- 用Python上传文件
Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的.相关的.不断增长的力量. Python只是一种语言,语言不 ...
- python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作
'''百度首页搜索上传图片为例''' #前提条件 1.使用winspy定位绝对路径 #前提条件 2.安装库pywin32 采用pip安装pip install pywin32 或其他途径安装 #1.访 ...
- python上传文件到linux服务器_python上传大文件到服务器报错
项目需要,在mac上将打包好的文件(四五百兆)自动上传到web后台,用了两种方式上传,都报了类似的错误,在windows和linux上测试不会报错,但是到了mac打包机上就会报错: ①第一种报错: T ...
- python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne
基于Python的onedrive文件本地化浏览系统–PyOne PyOne是一款基于Python-Flask的onedrive文件本地化浏览系统,使用MongoDB储存文件列表,使用redis缓存数 ...
- pythonselenium上传图片视频_如何用selenium、python上传文件(图片)
我添加了一个答案,任何人想使用处理恼人的msofiledialogs.这是对saravanan提出的解决方案的改进,但对Python来说更加充实. 我也遇到过类似的问题,我正在为一家公司做脚本.我试图 ...
- python上传文件进度_python实现进度条--主要用在上传下载文件
在python中进行socket上传文件的时候使用进度条,然后在网上找了好久,找寻相关的进度的条的使用,看了几个,发现总是无法进行调用,主要原因是在进行上传文件的时候,每次传送的数据量是固定的,数据的 ...
- python上传文件到web
python的requests发送/上传多个文件 2017年07月10日 13:45:32 阅读数:16133 1.需要的环境 Python2.X Requests 库 2.单字段发送单个文件 在re ...
- python上传文件到onedrive_PyOne——另一款支持OneDrive目录浏览的程序
PyOne从名字就能得出是Python写的,和Onindex用PHP写的不一样.作者目前还是不停在更新和挖坑的,近期实现了添加多个OneDrive网盘的功能,未来将准备支持多用户功能.Oneindex ...
- python 上传文件夹,python – 使用Flask上传文件夹/文件
我可以通过这个例子上传一个带烧瓶的文件: 但我不知道如何上传文件夹或一些文件.我搜索过,我发现了这个: Uploading multiple files with Flask.最后,我得到了如何上传多 ...
最新文章
- 微信网页开发 jssdk前后端代码,PHP实现完整代码,自定义分享
- nodejs http.get 方法可以 request 不行
- 存在于实数域无限维空间的分子
- java 爬虫 保存cookies_写爬虫,免不了要研究JavaScript设置cookies的问题
- java 批量入库oracle_java操作Oracle数据库——ARRAY、TABLE类型批量入库
- 想进美团不知道选哪个技术岗位?这里有一份通关秘籍!
- PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
- 变频器说明书_图解变频器接线方法
- cathome 猫家 开发日记-底部导航
- postgre sql安装时忘记之前密码时如何处理。
- pandas基础知识--1
- 简单的python画图代码_常见的python画图简单代码
- 网络测速工具iperf使用介绍
- Python — sklearn 分类效果评估
- OCR+RFID感应识别电子护照阅读器|读卡器MERR100+的 API 接口函数说明
- Unity Shader - URP ShadowCast ShadowRecieve - 投影 和 接受阴影
- JAVA表示姓名和对应的出生日期
- [笔记]-后端学习笔记
- “OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案
- RocketMQ——ack机制保证消费成功