在Flask Web开发入门(十)之图片上传(使用Flask-Uploads)我们介绍了使用Flask插件Flask-Uploads上传图片,本章就此话题继续展开。
我们知道,我们可以通过UPLOADS_DEFAULT_DEST参数来指定文件上传的默认路径,假如我们指定的路径是upload目录,那么文件实际保存的路径为:
upload/files/xxx
注意,files为UploadSet中的name参数,xxx为文件名
在上一章中,我们说过,Flask-Uploads保存文件的核心方法为:
uploaded_photos.save(file)
这个方法返回的是实际保存的文件名filename,当我们在完成保存文件动作之后,我们通过调用url方法:
(‘%s url is %s’ % (filename, uploaded_photos.url(filename)))
就可以得到上传文件的网站访问全路径,即我们指定UPLOADS_DEFAULT_URL参数 + files/xxx,即:
url is http://127.0.0.1:9000/files/
图片上传完毕之后,我们还需要查看图片,因此,基于上面的分析,我们的展现代码实现如下:
# show photo
@('/files/<string:filename>', methods=['GET'])
def show_photo(filename):
if == 'GET':
if filename is None:
pass
else:
('filename is %s' % filename)
image_data = open((UPLOAD_PATH, 'files/%s' % filename), "rb").read()
response = make_response(image_data)
['Content-Type'] = 'image/png'
return response
else:
pass
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
源码参考:/ypmc/flask-sqlalchemy-web