Django url解析-pass原始字符串

时间:2010-06-25 11:52:09

标签: django django-urls

我正在尝试将“字符串”参数传递给带有网址的视图。 urls.py去了

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

我遇到字符串问题,包括标点符号,换行符,空格等。 我想我必须将\ w +改成别的东西。 基本上,字符串将是用户从他选择的文本中复制的内容,我不想更改它。我想接受任何字符和特殊字符,以便视图完全依赖于用户复制的内容。

如何更改?

谢谢!

2 个答案:

答案 0 :(得分:4)

请注意,您只能使用可以理解为正确URL的字符串,将任何字符串作为url传递都不是一个好主意。

我使用这个正则表达式来允许我的网址中的字符串值:

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

这允许有'slu ;;在你的网址中(例如:'this-is-my_slug')

答案 1 :(得分:2)

嗯,首先,网址中不允许有很多字符。为初学者考虑?和空格。无论你做什么,Django都可能会阻止它们被传递到您的视图中。

其次,您想要阅读re模块。它是为这些URL匹配设置语法的原因。 \w表示任何大写或小写字母,数字或_(基本上是标识符字符,但不包括前导数字除外)。

将字符串传递给URL的正确方法是作为表单参数(即在URL中?paramName=之后,并使用特殊字符进行转义,例如将空格更改为+)。< / p>