python - flask redirect 重定向问题?
问题描述
代码如下, 图片能上传成功, 但是图片上传成功后不能显示图片, redirect这样写对么?
#!/usr/bin/env python3# -*- coding:utf-8-*-import osfrom flask import Flask, render_template, request, redirect, url_forfrom flask_uploads import UploadSet, configure_uploads, patch_request_class, IMAGESapp = Flask(__name__)app.config[’UPLOADED_PHOTOS_DEST’] = os.getcwd() + '/upload/img'photos = UploadSet(’photos’, IMAGES)configure_uploads(app, photos)patch_request_class(app)@app.route(’/’, methods=[’POST’, ’GET’])def index(): if request.method == ’POST’ and ’photo’ in request.files:filename = photos.save(request.files[’photo’])file_url = photos.url(filename)print('filename = %s, file_url = %s' % (filename, file_url))return redirect(url_for(’index’, file_url=file_url)) return render_template(’index.html’, file_url=None)if __name__ == ’__main__’: app.run(port=8080)
<!doctype html><html><head> <title>Demo-上传文件</title></head><body><h1>文件上传demo</h1><form method='post' enctype='multipart/form-data'> <input type='file' name='photo'> <input type='submit' value='上传'></form><br>{% if file_url %} <img src='https://www.haobala.com/wenda/{{ file_url }}' alt=''> {% else %} <p>还没有上传文件</p>{% endif %}</body></html>
----------更新----------将index路由修改了一下, 达到了想要的效果:
@app.route(’/’, methods=[’POST’, ’GET’])def index(): file_url = None if request.method == ’POST’ and ’photo’ in request.files:filename = photos.save(request.files[’photo’])file_url = photos.url(filename)print('filename = %s, file_url = %s' % (filename, file_url)) return render_template(’index.html’, file_url=file_url)
但之前的思路不对的么?
问题解答
回答1:对于图片的显示,需要定义1个路由用于发送静态文件,可以使用send_from_directory来进行对应的处理。
@app.route(’/get_media/<path:filename>’, methods=[’GET’])def get_media(filename): return send_from_directory(’/media/’, filename)
相关文章:
1. docker start -a dockername 老是卡住,什么情况?2. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?3. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题4. 请问“由于 Cookie “PHPSESSID”的“SameSite”属性设置为“None”,但缺少“Secure”属性,此 Cookie 未来将被拒绝。”请问出现这个问题怎么办?5. docker容器呢SSH为什么连不通呢?6. docker api 开发的端口怎么获取?7. golang - 用IDE看docker源码时的小问题8. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?9. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~10. docker网络端口映射,没有方便点的操作方法么?

网公网安备