2013-03-06 84 views
0

從我所看到的有兩種使用URL內的字符串的方法。通過使用URLConf或通過request.GET.get。將URL字符串分配給Django中的變量

林試圖使用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)) 

當我運行此我得到一個錯誤說「沒什麼g重複「。

謝謝,

回答

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): 

但是,如果 - 因爲更可能 - 您的URL是www.domain.co.uk/?macoui=001100 - 帶有問號 - 那麼您的URLconf應該是:

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

和你的看法變成:

def output(request): 
    macaoui = request.GET.get('macoui', '') 
+0

感謝完美的答案。非常感謝其他答案。 – felix001 2013-03-07 13:11:54

-1

你應該乾脆做。

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

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

網址,您的例子如什麼讓參數(request.GET中)的請求的URI被跟在後面「不正確的? 「

+0

是否有與具有問號這樣做沒有URL配置的方法嗎? – felix001 2013-03-06 21:31:24

0

我相信你在這一行有一個問題:

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

當你逃避的最後撇號和整個字符串永遠不會關閉。你會更好地使用其他字符串分隔符:

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

祝你好運。

相關問題