2014-05-09 69 views
0

搜索URL我有以下網址:
http://127.0.0.1:8000/databaseadd/q=DQ-TDOXRTA?recipe=&recipe=&recipe=&recipe=&recipe=

我想如果關鍵字的「祕方=」 url中找到相匹配。
我在Django url.py以下行,但它不工作:
url(r'recipe=', 'plots.views.add_recipe'),Django的:關鍵字正則表達式

是「&」和「?」把它扔掉?

謝謝!
亞歷

回答

2

部分不用於url調度過程,因爲它包含GET參數。否則,您將無法使用帶有參數的GET請求,例如r'^foo/&'(末尾的和號表示字符串的末尾,如果沒有,則同時使用r'^foo/'r'^foo/bar/'等模式會更困難)。

因此,對於您的網址,模式應該看起來像r'^databaseadd/q=DQ-TDOXRTA&',然後在add_recipe視圖中,您需要檢查recipe GET參數。

+0

問題是q =後面是什麼變量。 「DQ-TDOXRTA」部分將會改變,並且不會保持一致。有沒有一種好方法來解決這個問題?當我在URL中同時獲得q =和recipe =時,我想加載一個新視圖。 –

+1

然後這個模式將被作爲'q'參數傳遞給視圖。'''databaseadd/q =(?P [A-Z \ - ])&''.DQ-TDOXRTA'至於新視圖,定義單獨的函數將更容易,只要兩個參數都存在就調用它。 – Igonato

+0

假設q包含大寫字母和破折號。否則,改變'[A-Z \ - ]'部分。 – Igonato

0

我想匹配,如果關鍵字 「配方=」 url中

你可以嘗試像發現:在?

import re; 
re.match (r'.*recipe=.*', "http://127.0.0.1:8000/databaseadd/q=DQ-TDOXRTA?recipe=&recipe=&recipe=&recipe=&recipe=")