当前位置: 首页 > news >正文

flask之文件上传

1、创建表单提交页面,如:upload.html

<html>
<head><title>File Upload</title>
</head>
<body><form action="http://localhost:8888/uploadfile" method="POST" enctype="multipart/form-data"><input type="file" name="file001"  /><input type="submit" value="提交" /></form>
</body>
</html>

2、url地址关联表单提交页面

@app.route('/upload')
def uploadFile():return render_template('upload.html')

3、提交表单后定义执行保存的函数

@app.route('/uploadfile',methods=['GET','POST'])
def save():if request.method == 'POST':f = request.files['file001'] #提取文件f.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(f.filename)))

4、完整演示代码

from flask import Flask, render_template, request
from werkzeug.utils import secure_filenameimport osapp = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'upload/'   #app.config['UPLOAD_FOLDER'] 定义上传文件夹的路径 @app.route('/upload')
def uploadFile():return render_template('upload.html')@app.route('/uploadfile',methods=['GET','POST'])
def save():if request.method == 'POST':f = request.files['file001'] #提取文件f.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(f.filename)))  #保存文件,目标文件的名称可以是硬编码的,也可以从 ​request.files[file] ​对象的​ filename ​属性中获取。但是,建议使用 ​secure_filename()​ 函数获取它的安全版本。return 'file uploaded successfully'else:return render_template('upload.html')if __name__ == '__main__':app.run(debug=True)

相关文章:

  • 双目光波导AR眼镜_AR智能眼镜主板PCB定制开发
  • P5743 【深基7.习8】猴子吃桃
  • 什么是https加密协议?
  • 基于个微机器人的开发
  • 注意力机制的快速学习
  • 新华三数字大赛复赛知识点 VLAN基本技术
  • 使用 HPA 和 TopologySpreadConstraints 实现可用区间等比扩容
  • http与apache
  • Linus:我休假的时候也会带着电脑,否则会感觉很无聊
  • 什么是ElasticSearch中的过滤器?
  • 搭配君正主控芯片测评:创想三维物有所值,让你玩3D打印,而不是玩3D打印机
  • 解决 Element-ui中 表格(Table)使用 v-if 条件切换后,表格的列的筛选不显示了
  • 请简要介绍一下HTML的发展史?
  • vuepress-----13、分割config
  • 丢掉破解版,官方免费了!!!
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • C# 免费离线人脸识别 2.0 Demo
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JavaScript设计模式系列一:工厂模式
  • js算法-归并排序(merge_sort)
  • MYSQL 的 IF 函数
  • MySQL-事务管理(基础)
  • php中curl和soap方式请求服务超时问题
  • Redis字符串类型内部编码剖析
  • TypeScript实现数据结构(一)栈,队列,链表
  • 搭建gitbook 和 访问权限认证
  • 番外篇1:在Windows环境下安装JDK
  • 软件开发学习的5大技巧,你知道吗?
  • 使用SAX解析XML
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 学习HTTP相关知识笔记
  • 06-01 点餐小程序前台界面搭建
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​水经微图Web1.5.0版即将上线
  • ###项目技术发展史
  • #宝哥教你#查看jquery绑定的事件函数
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (02)Hive SQL编译成MapReduce任务的过程
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C)一些题4
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)c52学习之旅-独立按键
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (篇九)MySQL常用内置函数
  • (小白学Java)Java简介和基本配置
  • (转)Linq学习笔记
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版