本篇回答将介绍如何在Flask中实现图片上传、下载及展示,并提供两个完整的示例代码。
示例1:图片上传
前置要求
在进行图片上传之前,需要安装Flask
及Flask-Uploads
库:
pip install Flask Flask-Uploads
Step1:创建Flask应用
from flask import Flask
app = Flask(__name__)
Step2:配置Flask应用
from flask_uploads import UploadSet, IMAGES
app.config['UPLOADED_PHOTOS_DEST'] = 'static/photos'
app.config['UPLOADED_PHOTOS_ALLOW'] = IMAGES
photos = UploadSet('photos', IMAGES)
from flask_uploads import configure_uploads
configure_uploads(app, photos)
Step3:实现图片上传的视图函数
from flask import render_template, request
from werkzeug.utils import secure_filename
@app.route('/upload', methods=['GET', 'POST'])
def upload():
if request.method == 'POST' and 'photo' in request.files:
filename = secure_filename(request.files['photo'].filename)
photos.save(request.files['photo'], name=filename)
return render_template('upload.html')
Step4:实现上传的表单页面
<form method="POST" enctype="multipart/form-data">
<input type="file" name="photo">
<button type="submit">Upload</button>
</form>
示例2:图片下载及展示
Step1:创建Flask应用
from flask import Flask, send_from_directory
app = Flask(__name__)
Step2:实现图片下载的视图函数
@app.route('/download/<path:filename>')
def download(filename):
return send_from_directory('static/photos', filename)
Step3:实现图片展示的视图函数
@app.route('/')
def index():
photo_urls = [('static/photos/' + filename) for filename in photos]
return render_template('index.html', photo_urls=photo_urls)
Step4:实现图片展示的模板页面
{% for url in photo_urls %}
<img src="{{ url }}" alt="photo">
{% endfor %}
这两个示例代码就是Flask实现图片的上传、下载及展示示例。其中,示例1中共实现了4个步骤,包括创建Flask应用、配置Flask应用、实现图片上传的视图函数和实现上传的表单页面。示例2中共实现了3个步骤,包括创建Flask应用、实现图片下载的视图函数和实现图片展示的视图函数及模板页面。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Flask实现图片的上传、下载及展示示例代码 - Python技术站