如何在Flask中的GET请求中传递带参数的URL?

时间:2013-12-06 06:56:03

标签: python url flask

在Flask中,我想在URL中发送一个URL作为参数及其所有参数

这是一个工作示例 http://graph.facebook.com/https://www.facebook.com/photo.php?fbid=717097101644637&set=a.456449604376056.98921.367116489976035&type=1&theater

我找不到办法,因为在我这样做的时候,网址不会成真。

@app.route('/<url>', methods=['GET'])

def show(url):
    """ do something with it """

知道该怎么做吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您查看Facebook为该网址返回的内容:

{
   "id": "https://www.facebook.com/photo.php",
   "shares": 377224,
   "comments": 2
}

您将注意到graph.facebook.com正在使用查询字符串参数 - 它们被视为作为搜索参数提交的URL的一部分。如果您希望能够获取整个URL 包括查询字符串参数,则需要对查询字符串your.url/https://www.facebook.com/photo.php%3Ffbid=717097101644637%26set=a.456449604376056.98921.367116489976035%26type=1%26theater进行URL编码

答案 1 :(得分:1)

不幸的是,我无法控制URL是否是URL编码的,所以我最好的就是这个。

_url = request.url.replace(request.url_root,'')
url = urllib.unquote(_url)

也许它会帮助某人。