python - flask redirect 重定向問(wèn)題?
問(wèn)題描述
代碼如下, 圖片能上傳成功, 但是圖片上傳成功后不能顯示圖片, redirect這樣寫對(duì)么?
#!/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='http://www.lshqa.cn/wenda/{{ file_url }}' alt=''> {% else %} <p>還沒(méi)有上傳文件</p>{% endif %}</body></html>
----------更新----------將index路由修改了一下, 達(dá)到了想要的效果:
@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)
但之前的思路不對(duì)的么?
問(wèn)題解答
回答1:對(duì)于圖片的顯示,需要定義1個(gè)路由用于發(fā)送靜態(tài)文件,可以使用send_from_directory來(lái)進(jìn)行對(duì)應(yīng)的處理。
@app.route(’/get_media/<path:filename>’, methods=[’GET’])def get_media(filename): return send_from_directory(’/media/’, filename)
相關(guān)文章:
1. python - 為什么match匹配出來(lái)的結(jié)果是<_sre.SRE_Match object; span=(0, 54), match=’’>2. mysql優(yōu)化 - mysql 一張表如果不能確保字段列長(zhǎng)度一致,是不是就不需要用到char。3. Python處理Dict生成json4. mysql updtae追加數(shù)據(jù)sql語(yǔ)句5. python - 請(qǐng)問(wèn)這兩個(gè)地方是為什么呢?6. python - 用os.environ能獲取到的環(huán)境變量,在os.environ.getenv卻得不到,這是為什么?7. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過(guò)百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量8. python中怎么對(duì)列表以區(qū)間進(jìn)行統(tǒng)計(jì)?9. 請(qǐng)教一個(gè)mysql去重取最新記錄10. 大家都用什么工具管理mysql數(shù)據(jù)庫(kù)?
