django在查询字符串中获取完整的URL

时间:2013-08-12 15:24:05

标签: django django-views

我正在尝试实现重定向脚本。 网址的格式为

http://localhost:8000/key/url=http://google.com

从上面我想要http://google.com

当某个用户访问上述网址时,会点击urls.py中定义的网址广告

url(r'^key/url=(.*)', 'homepage.views.redirectquerystring', name="Redirect"),

我正在尝试使用以下视图获取网址http://google.com

def redirectquerystring(request):
    para = request.GET.get('url','')

但是当我这样做时,我收到以下错误:

TypeError at /key/url=http://google.com
redirectquerystring() takes exactly 1 argument (2 given)

我在这里犯了一些错误。

感谢。

2 个答案:

答案 0 :(得分:3)

这比你想象的要简单得多。

您尝试将http://google.com作为参数传递,但您没有为视图提供接收该参数的位置。

您需要将视图定义为def redirectqyrystring(request, url):

您现在不需要从请求中获取网址,它已经存在于变量url

答案 1 :(得分:3)

你应该"捕获"使用urlpatterns正则表达式的url param如下:

url(r'^key/url=(?P<url>.*)', 'homepage.views.redirectquerystring', name="Redirect"),

这样你的视图会收到一个名为url的parmeter,其中包含捕获的url get param。

相关问题