我有一个关于url_for的问题,无法在python flask-404中打开文件,未找到。但被标记为重复。
我的要求很简单。在主页中创建href链接,指向输出文件夹中的文件。我尝试了SO中的几乎所有线程,因为答案似乎对我不起作用。我是python的新手。请帮忙。以下是我尝试过的示例代码
from flask import Flask, redirect, url_for,send_from_directory
app = Flask(__name__)
@app.route('/main')
def index():
print 'test'
return '''<a href="{{ url_for('uploaded_file', filename='a.txt') }}">Open file</a>'''
@app.route('/out/<filename>')
def uploaded_file(filename):
print filename
return send_from_directory('./out/',
filename)
@app.route('/out/<filename>')
def uploaded_file2(filename):
print filename
return './out/'+filename
if __name__ == '__main__':
app.run(debug = True)
您的应用目录结构应如下所示,这样该代码才能正常工作。如果在out文件夹中找不到文件名,那么您将看到“找不到URL”:
app/
app.py
static/
out/
a.txt
templates/
index.html
from flask import Flask, render_template, redirect, url_for,send_from_directory
app = Flask(__name__)
app.config.update(
UPLOAD_FOLDER = "static/out/"
)
@app.route('/main')
def index():
print ('test')
return render_template('index.html')
@app.route('/out/<filename>')
def uploaded_file(filename):
print (filename)
return send_from_directory(app.config["UPLOAD_FOLDER"], filename)
@app.route('/showfilepath/<filename>')
def uploaded_file2(filename):
print (filename)
return app.config["UPLOAD_FOLDER"] + filename
if __name__ == '__main__':
app.run(debug = True)
# index.html
<a href="{{url_for('uploaded_file', filename='a.txt')}}">open file</a>
# a.txt
hey there ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句