从我可以看到有两种方法可以在URL中使用字符串。通过使用URLConf或通过request.GET.get。
我试图使用request.GET.get方法并尝试在URL上签名后捕获字符串,例如www.domain.co.uk/macoui=001100
URL配置
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))
当我运行时,我收到一条错误,上面写着“无需重复”。
谢谢,
答案 0 :(得分:1)
这里有很多错误。
你已经正确地说过有两种获取参数的方法,然后将它们两者混淆。如果你在urlconf中匹配的东西,那么你不使用request.GET来获取它们。无论如何,request.GET
仅适用于查询字符串参数 - 也就是www.domain.co.uk/?param=value
形式的网址,其中?
是必要的部分。
如果您的网址确实是www.domain.co.uk/macoui=001100
- 没有?
- 那么您需要修改正则表达式,如下所示:
url(r'^macoui=(?P<macaoui>\d{6})$', 'domain.views.output'),
以及您的观点如下:
def output(request, macaoui):
但是,如果 - 更有可能 - 您的网址为www.domain.co.uk/?macoui=001100
- 带有问号 - 那么您的网址应该是:
url(r'^$', 'domain.views.output'),
,您的观点变为:
def output(request):
macaoui = request.GET.get('macoui', '')
答案 1 :(得分:0)
我相信你在这一行有问题:
{'response': '\'%s\' % (macoui)}
当你逃离最后一个撇号时,整个字符串永远不会被关闭。你最好使用其他字符串分隔符:
{'response': "'%s'" % (macoui)}
祝你好运。
答案 2 :(得分:-1)
你应该这样做。
url(r'^/.*', 'domain.views.output'),
然后使用网址www.domain.co.uk/?macoui=001100
你的例子上的URL在请求uri之后是什么不合适的获取参数(request.GET)跟在'?'之后