Как создать ссылки на страницы? - PullRequest
0 голосов
/ 25 октября 2011

Я знаю местоположение текущего пользователя. Это может быть один из следующих URL:

(1) http://myapp.appspot.com/something/something-else/
(2) http://myapp.appspot.com/something/something-else
(3) http://myapp.appspot.com/something/something-else/page1
(4) http://myapp.appspot.com/something/something-else/page3

(фактически адреса 1, 2 и 3 для одной страницы1)

Мне нужно отобразить на этих страницах ссылку для page2:

http://myapp.appspot.com/something/something-else/page2

Вопрос в том, как сгенерировать такую ​​ссылку?

Я пытался использовать относительные ссылки: /page2 и page2 - не работает должным образом. Я не уверен, как создать абсолютную ссылку с self.request.path - она ​​также не работает должным образом.

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

/page2 никогда не будет работать;ведущий / делает его относительно корня сайта, а не текущего каталога.

page2 должно работать для всего, кроме # 2;без косой черты something-else интерпретируется как файл, а не как текущий каталог.

Одним из решений будет ссылка на /something/something-else/page2, чтобы ваша ссылка не менялась в зависимости от адреса пользователя.

1 голос
/ 26 октября 2011

import something #refers to your .py file with the template handler</p> <p>...</p> <pre><code>application = webapp.WSGIApplication([ ('/something/something-else/', something.SomeThingElseHandler), ('/something/something-else', something.SomeThingElseHandler), ('/something/something-else/' + '([^/]+)/', something.PageHandler), #The above pattern will be recognized if you close the url with / #If you want your url to end without the slash your remove it for the reg ex. like ('/something/something-else/' + '([^/]+)', something.PageHandler), ], debug=config.DEBUG)

util.run_wsgi_app (приложение)

В something.py, в вашем class PageHandler вам необходимо проанализировать ключ или идентификатор, который вы анализируете, вручную, чтобы отобразить правильный контент.

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