LINUX.ORG.RU

Вопрос по routing в Pyramid


0

2
Почему URL http://localhost:8080/hello%2Fname идёт как http://localhost:8080/hello/name

в то время как /hello/name%2Fname2 не входит в route /hello/{name}

%2F - URL encoded '/'. Как сделать что бы 'name%2Fname2' подходило к route /hello/{name} ?


Последнее исправление: tyler19 (всего исправлений: 1)
Ответ на: комментарий от tyler19

ты пытаешься передать '/' в виде параметра урлом? Если я тебя правильно понимаю, то для этого есть request.POST/GET

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

Возможно ли как то передать таким образом? Вроде как такой URL красивее чем ?par=val. Я начинающий в pyramid, подскажите в каком файле посмотреть код который это делает. Не понятно на кой он заменяет %2F на /. Это же по спецификации URL encoded.

tyler19
() автор топика
Ответ на: комментарий от tyler19

Не понятно на кой он заменяет %2F на /. Это же по спецификации URL encoded.

для начала посмотри что передается скрипту.

Возможно ли как то передать таким образом? Вроде как такой URL красивее чем ?par=val.

сделать реврайт ^(.*)$ /uwsi/instance/?par=$1

xpahos ★★★★★
()
Ответ на: комментарий от tyler19

Но %2F ведёт себя так же как /.

А почему должно вести по другому если это одно и тоже.

ты можешь поймать кусок урла с разделителями только если до конца урла, вот в доке пример:

pattern: foo/{baz}/{bar}{fizzle:.*}

при разборе получишь: foo/abc/def/a/b/c -> {'baz':u'abc', 'bar':u'def', 'fizzle': u'a/b/c')}

bismi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.