我正在尝试实现重定向脚本。 网址的格式为
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)
我在这里犯了一些错误。
感谢。
答案 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。