2010-06-25 40 views
5

我想通過一個URL傳遞一個'字符串'參數到一個視圖。 的urls.py去Django url解析 - 通過原始字符串

('^add/(?P<string>\w+)', add), 

我在用繩子,包括標點符號,換行,空格等問題。 我想我必須改變\ w +爲別的東西。 基本上這個字符串會被用戶從他選擇的文本中複製,我不想改變它。我想接受任何角色和特殊角色,以便視圖完全按照用戶所複製的內容行事。

我該如何改變它?

謝謝!

回答

2

那麼,首先,網址中有很多字符是不允許的。認爲?和空間的初學者。無論你做什麼,Django都可能會阻止它們傳遞給你的視圖。

其次,你想了解re模塊。它是爲這些URL匹配設置語法的。 \w表示任何大寫或小寫字母,數字或_(基本上,標識符字符,但不禁止前導數字)。

將字符串傳遞給URL的正確方法是作爲表單參數(即在URL中有?paramName=並且特殊字符已轉義,例如空格更改爲+後)。

4

請注意,您只能使用可理解爲正確URL的字符串,將任何字符串作爲url傳遞都不是好主意。

我用這個正則表達式,允許在我的網址字符串值:

(?P<string>[\w\-]+) 

這使得有「蛞蝓;在你的網址(如:'this-is-my_slug')

+0

順便說一句,'\ w'包含'_',如果'''(和'可選'^')之後的第一個東西是'',那麼''' '(?P [ - \ w] +)'。 – 2010-06-25 12:01:49