0

我正在尝试这段代码

@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

那么,基本上我怎样才能从我的文件夹中获取文件?

4

3 回答 3

0

从您的代码中,我了解到您想下载位于您自己机器上的 html 文件。第一的:

response = urllib2.urlopen("http://"+socket.gethostname()+"app/documents/"+ download)

应该

response = urllib2.urlopen("http://"+socket.gethostname()+"/app/documents/"+ download)

除非“应用程序”是您主机名的一部分(我认为不是)。

其次...确保您可以使用 wget 做同样的事情(这意味着您在本地安装了一个 http 服务器,它侦听端口 80 并可以提供请求的文件):

wget <URL>
于 2013-10-21T15:00:12.673 回答
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))
于 2013-10-21T15:03:27.820 回答
0
@app.route('/process/<user_id>/<file_format>/<download>')
def download(user_id, file_format, download):
    return redirect(url_for('static', filename='documents/'+download))

这就是我一直在寻找的。

于 2013-10-22T10:04:00.370 回答