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

django获取查询字符串中的完整url,django,django-views,Django,Django Views,我正在尝试实现重定向脚本。 url的格式为 http://localhost:8000/key/url=http://google.com 从上面,我想要http://google.com 当一些用户访问上述url时,它会点击url.py中定义的url模式 url(r'^key/url=(.*)', 'homepage.views.redirectquerystring', name="Redirect"), 我正在尝试获取urlhttp://google.com使用下面的视图 def re

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

http://localhost:8000/key/url=http://google.com
从上面,我想要
http://google.com

当一些用户访问上述url时,它会点击url.py中定义的url模式

url(r'^key/url=(.*)', 'homepage.views.redirectquerystring', name="Redirect"),
我正在尝试获取url
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)
我是不是犯了什么错误


谢谢。

这比你想象的要简单得多

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

您需要将视图定义为
def redirectqyrysting(请求,url):


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

中,这比您想象的要简单得多

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

您需要将视图定义为
def redirectqyrysting(请求,url):

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

中。您应该使用urlpatterns regex“捕获”url参数,如下所示:

url(r'^key/url=(?P<url>.*)', 'homepage.views.redirectquerystring', name="Redirect"),
url(r'^key/url=(?P.*),'homepage.views.redirectquerystring',name=“Redirect”),
这样,视图将接收一个名为
url
的参数,其中包含捕获的url get param。

您应该使用urlpatterns regex“捕获”url param,如下所示:

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

通过这种方式,您的视图将收到一个名为
url
的参数,其中包含捕获的url get param。

谢谢您的回答aalizadeh。
def redirectquerystring(request,url):
django很漂亮,不是吗?谢谢您的回答aalizadeh。
def redirectquerystring(request,url):
django很漂亮,不是吗?