0

据我所知,有两种方法可以在 URL 中使用字符串。通过使用 URLConf 或通过 request.GET.get。

我尝试使用 request.GET.get 方法并尝试在 URL 上的 = 符号后捕获字符串,例如 www.domain.co.uk/macoui=001100

URLConf

url(r'^macoui=\d{6}$', 'domain.views.output'),

看法

def output(request):
    if request.method == 'GET':
       request.GET.get('macoui', '')
       return render_to_response('template.html', {'response': '\'%s\' % (macoui)}, context_instance=RequestContext(request))

当我运行它时,我收到一条错误消息,提示“无需重复”。

谢谢,

4

3 回答 3

1

你这里有很多错误。

您已经正确地指出有两种获取参数的方法,然后将它们都混淆了。如果您要匹配 urlconf 中的内容,则不要使用 request.GET 来获取它们。无论如何,request.GET仅适用于查询字符串参数 - 即形式的 URL,www.domain.co.uk/?param=value其中?是必要的部分。

如果您的 URL 真的www.domain.co.uk/macoui=001100- 没有?- 那么您需要按如下方式修复您的正则表达式:

url(r'^macoui=(?P<macaoui>\d{6})$', 'domain.views.output'),

和你的看法如下:

def output(request, macaoui):

但是,如果 - 更有可能 - 你的 URL 是www.domain.co.uk/?macoui=001100- 带有问号 - 那么你的 URLconf 应该是:

url(r'^$', 'domain.views.output'),

你的观点变成:

def output(request):
   macaoui = request.GET.get('macoui', '')
于 2013-03-06T21:31:24.347 回答
0

我相信你在这一行有问题:

{'response': '\'%s\' % (macoui)}

当您转义最后一个撇号时,整个字符串永远不会关闭。最好使用其他字符串分隔符:

{'response': "'%s'" % (macoui)}

祝你好运。

于 2013-03-06T21:00:35.697 回答
-1

你应该简单地做。

url(r'^/.*', 'domain.views.output'),

然后使用 URL,www.domain.co.uk/?macoui=001100

您的示例中的 URL 什么不合适,因为请求 uri 上的获取参数 (request.GET) 紧跟在“?”之后

于 2013-03-06T20:51:10.610 回答