Как мне написать этот URL в Django? - PullRequest
3 голосов
/ 07 апреля 2010
(r'^/(?P<the_param>[a-zA-z0-9_-]+)/$','myproject.myapp.views.myview'),

Как я могу изменить это, чтобы "the_param" принимал URL (закодированный) в качестве параметра?

Итак, я хочу передать ему URL.

mydomain.com/http%3A//google.com

Редактировать: Должен ли я удалить регулярное выражение, как это ... и тогда это будет работать?

(г '^ / (? P [*]?) /? $', 'Myproject.myapp.views.myview'),

Ответы [ 3 ]

2 голосов
/ 07 апреля 2010

Добавить % и . к классу символов:

[a-zA-Z0-9_%.-]

Примечание: Вам не нужно экранировать специальные символы внутри классов символов, поскольку специальные символы теряют своисмысл внутри наборов символов.Символ -, если он не используется для указания диапазона, следует экранировать косой чертой или ставить в начале (для python 2.4.x , 2.5.x , 2.6.x ) или в конце набора символов (python 2.7.x ), следовательно, что-то вроде [a-zA-Z0-9_%-.] вызовет ошибку.

0 голосов
/ 07 апреля 2010

Я думаю, что вы можете сделать это с:

(r'^(?P<url>[\w\.~_-]+)$', 'project.app.view')
0 голосов
/ 07 апреля 2010

Вам, по крайней мере, понадобится что-то вроде:

(r'^the/uri/is/(?P<uri_encoded>[a-zA-Z0-9~%\._-])$', 'project.app.view'),

Это выражение должно соответствовать всему описанному здесь .

Обратите внимание, что ваш пример должен быть mydomain.com/http%3A%2F%2Fgoogle.com (косые черты должны быть закодированы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...