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

flask: 用Flask-Uploads实现文件上传

一,安装第三方库

$ pip install Flask-Uploads

二,代码

app.py

#先导入次此处需要用到的库:
from flask_uploads import UploadSet, IMAGES, configure_uploads, ALL,patch_request_class# 配置文件上传到的路径,以及限制上传文件的类型
app.config['UPLOADED_PHOTO_DEST'] = os.path.dirname(os.path.abspath(__file__))
app.config['UPLOADED_PHOTO_ALLOW'] = IMAGES# 实例化 UploadSet 对象
photos = UploadSet('PHOTO')# 将 app 的 config 配置注册到 UploadSet 实例 photos
configure_uploads(app, photos)

photo.py

from flask import Blueprint,jsonify,render_template,request
from flask import request, Flask, redirect, url_for, render_template,abortimport os
from app import cache, photosphoto = Blueprint('photo', __name__)# 上传图片页央
@photo.route("/upload/", methods=['GET'])
def photo_upload():# 得到post参数return render_template('photo/upload.html')# 接收上传图片
@photo.route("/uploaded/", methods=['POST'])
def photo_uploaded():# 得到post参数filename = photos.save(request.files['photo'])return redirect(url_for('photo.photo_show', name=filename))@photo.route("/show/<name>", methods=['GET'])
def photo_show(name):if name is None:abort(404)url = photos.url(name)return render_template('photo/show.html', url=url, name=name)

upload.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method=POST enctype=multipart/form-data action="{{ url_for('photo.photo_uploaded') }}"><input type=file name=photo><input type=submit>
</form></body>
</html>

show.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<img src="{{ url }}"/>
</body>
</html>

三,测试效果:

image

image

 

http://www.jsqmd.com/news/37003/

相关文章:

  • AI元人文:交织的智慧——应对价值困境的四条路径
  • 光学神经网络
  • 2025 年 11 月疥螨阴虱药剂厂家推荐排行榜,扑灭司林,苯甲酸苄酯,胺氯菊百灭宁,科灭达专业配方高效灭杀方案公司推荐
  • 黑马点评优雅关闭服务
  • 01-03 设计模式 - 导学
  • 35
  • 2025 年 11 月冲压件厂家推荐排行榜,新能源冲压件,光伏冲压件,精密冲压件,异形冲压件,五金冲压件,铝冲压件,汽配冲压件,不锈钢冲压件,家具冲压件公司推荐
  • Day17内容溢出overflow属性
  • 日总结 24
  • 谷歌广告生态指南:AdSense/GAM 接入避坑 + 填充监听 + 问题排查
  • P4511 日程管理
  • 11.10学习总结
  • 新编故事 | 噪音
  • Oracle数据库实例深度解析与实践指南
  • 2025 年 11 月流量计厂家推荐排行榜,热式/模拟式/数字式/高压/高温/耐腐蚀/多气体/4-20mA/RS485/分体式/不锈钢/高精度流量计公司推荐
  • 20232405 2024-2025-1 《网络与系统攻防技术》实验四实验报告
  • 2025 年 11 月聚氨酯厂家推荐排行榜,浇注型聚氨酯,聚氨酯预聚体,聚氨酯胶黏剂,聚氨酯组合料,聚氨酯密封,聚氨酯轮,聚氨酯胶辊,聚氨酯制品公司推荐
  • duckdb比sqlite大多了
  • 20232303 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 2025 年 11 月氢氧化镁厂家推荐排行榜,矿石氢氧化镁,矿石法氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁公司推荐
  • 20232415 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • React:使用Tailwind CSS、Streamdown与Ant Design X
  • Day17清除默认样式
  • 2025 年 11 月磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超细磨粉机,高压磨粉机公司推荐
  • 详细介绍:探究微波消解仪如何创新现代实验室的样品前处理流程
  • 爆肝!Oracle RAC 日常运维命令总结
  • Python 面向对象编程进阶
  • 详细介绍:线性代数 几何意义 | 基础、向量、行列式与线性方程组(上篇)
  • Emacs Org-Mode插入文本内容,自动对齐表格(Org-Babel)
  • 在Zabbix中修改Web页面显示名称