首先,你在url模式中的正則表達式是錯誤的。
r'^$/(?P<tag>\w+)'
它說,以匹配一切從
- ^線
- $到行
- 具有被後由文字和數字的命名標籤模式的結束的開始行結束
通常在一行結束後來另一行或EOF不滿足(除非你使用多行正則表達式,你不需要這些)。
線到底應該在標籤後:
r'^/(?P<tag>\w+)$'
使用查詢字符串
Query strings are not parsed by url reslover.
因此,如果你在格式有網址:
http://mysite.com/?query=param_here
將匹配:
(r'^$', 'twingle.search.views.index')
在這種情況下,您可以訪問query
字符串中的觀點,像這樣:
request.GET.get('query', '')
沒有查詢字符串
mysite.com/search/param_here
將匹配:
(r'^search/(?P<query>\w+)$', 'twingle.search.views.index'),
凡匹配\w
(您應該更改此套件以滿足您的需求)的所有內容都將與請求索引視圖函數一起傳遞,作爲名爲query
的參數。
兩個
:您可以使用URL模式,像這樣:
urlpatterns = patterns('twingle.search.views',
url(r'^$', 'index'),
url(r'^search/(?P<query>\w+)$', 'index'),
)
在這個例子中的觀點會是這個樣子:
def index(request, query=None)
if not query:
query = request.GET.get('query', '')
# do stuff with `query` string
我正在使用錯誤'url(r'^ search /(?P \ w +)$','index')',語法無效(urls.py,第9行) 有什麼想法爲什麼? – tipu 2010-05-23 11:50:43
如果你複製/粘貼了兩個模式的最後一個urlpatterns示例代碼,似乎我在第一個url模式後忘記了一個逗號。我現在已經修好了。 – 2010-05-23 12:02:38
我還編輯了urlpatterns(更名爲''到''),以便更容易在視圖中使用並添加了一個視圖示例。 –
2010-05-23 12:29:53