0

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

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

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

当一些用户访问上面的 url 时,它会命中 urls.py 中定义的 urlpatters

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

我正在尝试http://google.com使用下面的视图获取 url

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

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

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

我在这里做错了吗。

谢谢。

4

2 回答 2

3

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

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

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

您现在不需要从请求中获取 url,它已经在变量中了url

于 2013-08-12T15:28:16.457 回答
3

您应该使用 urlpatterns 正则表达式“捕获” url 参数,如下所示:

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

这样,您的视图会收到一个名为 的参数url,其中包含捕获的 url 获取参数。

于 2013-08-12T15:31:58.050 回答