下面我将详细讲解 Flask web上传获取图像Image读取并使用方式的完整攻略,包含两条示例说明。
Flask Web上传获取图像并读取
在 Flask Web 应用程序中,最简单的上传图像的方法就是使用 Python 的 werkzeug
库中的 FileStorage
对象。可以在 HTML 表单中添加 file
类型的 input,然后在 Flask 路由中通过 request.files
获取上传的文件对象。
示例1:上传图像并保存
HTML 表单:
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
Flask 路由:
from flask import Flask, request
import os
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
filename = file.filename
file.save(os.path.join('static', filename))
return f'文件 {filename} 已上传'
在这个示例中,我们通过 request.files
获得了上传的文件对象,并通过 save
方法将文件保存到指定位置。
示例2:上传图像并显示
HTML 表单:
<form action="/show" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
Flask 路由:
from flask import Flask, request, render_template
from PIL import Image
import io
app = Flask(__name__)
@app.route('/')
def home():
return render_template('home.html')
@app.route('/show', methods=['POST'])
def show():
file = request.files['file']
img = Image.open(file.stream)
img_io = io.BytesIO()
img.save(img_io, 'PNG')
img_io.seek(0)
return send_file(img_io, mimetype='image/png')
在这个示例中,我们通过 Image.open
方法读取了上传的文件,在内存中生成了一个 BytesIO
对象,然后返回一个 PNG
格式的图片。这个图片可以直接用于网页显示。
总结
这就是 Flask Web上传获取图像并读取的完整攻略。在这篇攻略中,我们学习了两个示例,一个是上传图像并保存,另一个是上传图像并显示。在实际应用中,可以根据需求选择不同的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Flask web上传获取图像Image读取并使用方式 - Python技术站