我正在尝试此代码
@app.route('/process/<user_id>/<file_format>/<download>', methods=['POST', 'GET'])
def download(user_id, file_format, download):
if request.method == 'GET':
response = urllib2.urlopen("http://"+socket.gethostname()+"app/documents/"+ download)
html = response.read()
return html
但我得到了:
URLError: <urlopen error [Errno -2] Name or service not known>
如果我只做response = urllib2.urlopen("app/documents/"+ download)
我明白了:
ValueError: unknown url type: app/documents/thereport_1712818a-39a3-436e-985c-84f1e8d43346.pdf
那么,基本上我如何从我的文档文件夹中获取文件?
答案 0 :(得分:0)
从您的代码中我了解到您要下载位于您自己的计算机上的html文件。 第一:
response = urllib2.urlopen("http://"+socket.gethostname()+"app/documents/"+ download)
应该是
response = urllib2.urlopen("http://"+socket.gethostname()+"/app/documents/"+ download)
除非'app'是您的主机名的一部分(我认为不是)。
第二......确保你可以使用wget做同样的事情(这意味着你在本地安装了一个http服务器,它可以侦听端口80并可以提供所请求的文件):
wget <URL>
答案 1 :(得分:0)
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/process/<user_id>/<file_format>/<download>', methods=['POST', 'GET'])
def download(user_id, file_format, download):
if request.method == 'GET':
return redirect("http://{0}/app/documents/{1}".format(request.host,download))
答案 2 :(得分:0)
@app.route('/process/<user_id>/<file_format>/<download>')
def download(user_id, file_format, download):
return redirect(url_for('static', filename='documents/'+download))
这就是我想要的。