Flask通过url变量传递另一个url

时间:2016-11-19 15:18:55

标签: python python-3.x flask web-development-server

我正试图从头开始建立一个cors代理。这是我的代码

@app.route('/api/v1/cors/url=<name>&method=<method>', methods=['GET'])
def api_cors(name, method):
    if method == 'http' or method == 'https':
        r = request.urlopen(method+"://"+name)
        return r.read()
    else:
        return "method not set!"

到目前为止工作正常,但我有一个问题,当我通过“url = google.com&amp; method = https”它工作正常,但当我传递的内容如“url = google.com / images / image。 jpg&amp; method = https“the”/“将被视为新目录

无论如何都要在烧瓶中躲避它?

2 个答案:

答案 0 :(得分:4)

不要尝试将值作为路径本身的一部分传递。将其作为查询参数传递。

@app.route('/api/v1/cors/')
def api_cors():
    url = request.args.get('url')

并将其称为"/api/v1/cors/?url=https://google.com/images/image.jpg"

答案 1 :(得分:2)

如果您想使用现在使用的相同网址方案,请将路由装饰器更改为此方案,它将起作用。

@app.route('/api/v1/cors/url=<path:name>&method=<method>', methods=['GET'])