我在Flask中进行简单的路由时遇到了一个问题,我无法理解。
这是有问题的功能和装饰器:
@app.route('/download/<filepath>', methods=['GET', 'POST'])
def download(filepath):
return(send_file(filepath, as_attachment=True))
被以下javascript触发:
var route='/download/'+filepath
$('#main').append('<div id="download"><div>Your report has been created</div><a class="btn btn-info btn-lg" href="'+route+'">Download report</a></div>');
“未找到”错误表示路由出现问题,而不是与文件路径有关的简单IOerror。
但是路由对我来说似乎可以,我犯了一些明显的错误吗? 非常感谢!
编辑:如果相关,请在Windows中
答案 0 :(得分:0)
查看Flask documentation中指定参数类型的转换器类型:
string (default) accepts any text without a slash
path like string but also accepts slashes
我怀疑您的变量需要为path
类型,而不是默认的string
:
@app.route('/download/<path:filepath>', methods=['GET', 'POST'])