2

引数としてURLを取り、URLデータを読み取り、それをブラウザーに表示する単純なherokuアプリを作成しました。コードは次のとおりです。

import os
from flask import Flask
import urllib2, urlparse

app = Flask(__name__)

@app.route('/<url>')
def getdata(url):
    url.replace('www.','')
    if url.count('http') == 0:
        url = 'http://'+url
    u = urlparse.urlparse(url)
    nurl = u.geturl()
    response = urllib2.urlopen(nurl).read()
    return response

if __name__ == '__main__':
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

google.comそれがうまくいくようにURLを渡されたとき。しかし、次のようなものが渡されるとgoogle.com/images(URLが503を返すことはわかっています)、404エラーがスローされます。Pythonシェルでsuburlを正常に読み取ろうとすると、問題なく動作します。なぜこれが起こっているのですか、どうすれば修正できますか?

4

1 に答える 1

5

のパスオプション@routeを使用してみてください。次のようなものが機能するはずです。

@app.route('/<path:url>')
def getdata(url):
    ...
于 2012-12-17T19:47:17.700 に答える