这里有两个示例说明:实现在 Flask 应用中上传图片并缩放作为头像。
示例 1:上传图片并保存到本地
from flask import Flask, request, redirect
from werkzeug.utils import secure_filename
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = '/path/to/uploads'
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
if file:
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return 'File uploaded successfully'
else:
return 'No file uploaded'
这个示例展示了如何在 Flask 应用中上传图片,并将其保存到指定的本地文件夹中。首先设置文件上传的目标文件夹 UPLOAD_FOLDER
,然后在路由 /upload
中检查请求是否包含文件。如果请求中包含文件,将其保存到指定目录中。
示例 2:上传图片并对其进行缩放
from flask import Flask, request, redirect, render_template
from PIL import Image
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = '/path/to/uploads'
app.config['ALLOWED_EXTENSIONS'] = set(['png', 'jpg', 'jpeg', 'gif'])
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']
@app.route('/')
def upload_form():
return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
image = Image.open(os.path.join(app.config['UPLOAD_FOLDER'], filename))
image.thumbnail((128, 128))
image.save(os.path.join(app.config['UPLOAD_FOLDER'], 'thumb_' + filename))
return 'File uploaded successfully'
else:
return 'Please upload a valid image file'
这个示例展示了如何在 Flask 应用中上传图片,并对其进行缩放。首先设置文件上传的目标文件夹 UPLOAD_FOLDER
,以及允许上传的文件扩展名 ALLOWED_EXTENSIONS
。然后定义一个方法 allowed_file
,用于检查上传的文件是否属于允许上传的文件类型。在路由 /
上展示一个上传图片的表单,向路由 /upload
提交时,检查上传的文件是否属于允许上传的文件类型,并保存到指定目录中。然后使用 Pillow 库打开图片,并对图片进行缩放,最后将缩略图保存到指定目录中。
以上是两个示例的完整攻略,您可以参考并进行自己的代码实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask 实现上传图片并缩放作为头像的例子 - Python技术站