2011-12-25 3 views
3

Как сделать web.py извлечение страницы, когда я нажимаю ссылку? у меня есть это в моем шаблоне:Гиперссылки в web.py

<a href='add.html'>Home</a>

Когда я нажимаю на «Home», я получаю 'не найден.

В моем приложении «/ add» отображается в класс «Добавить», который возвращает «Boom!» используя шаблон add.html.

urls = ('/', 'Index', 
    '/add','Add') 

class Add(object): 
    def GET(self): 
     return render.add('Boom!') 

я чувствую, когда я прошу для /add.html, класс Add будет обрабатывать запрос и возвратный «Бум!»

Почему я продолжаю получать «не найден»?

ответ

8

Происхождение страницы URI, заканчивающаяся в .html lilke /add.html является то, что в статике хостинга сред это были традиционно очень одиночные текстовые файлы с HTML-контентом и файлом, заканчивающимся для такого файла .html

Но ваша система динамична и создает веб-страницы на лету. Это не обязательно страницы, заканчивающиеся на .html. Хотя вы можете имитировать традиционное поведение, если хотите.

Но в современной и динамичной системе часто предпочитают, чтобы на отдельных «страницах» не заканчивалось окончание.

Таким образом, вы можете, как предполагает Игнасио, просто избавиться от .html и запросить страницу /add, которая является допустимым и достаточным уникальным идентификатором для этого ресурса.

Если вы хотите сохранить окончание .html. вы должны добавить его также в маршрут.

urls = (
    '/', 'Index', 
    '/add.html','Add', 
) 

Вы также можете иметь несколько маршрутов, указывающих на тот же ресурс, так что и/добавлять и /add.html действительны и показывать то же самое содержание, но дублирование контента имеет другие недостатки:

urls = (
    '/', 'Index', 
    '/add','Add', 
    '/add.html','Add', 
) 

Я рекомендую избавиться от .html. Это означает, что вы придерживаетесь кода своего вопроса и создаете ссылки на эту страницу:

<a href="/add">add something</a> 
+1

Holala. Оно работает! – kassold

5

Либо измените маршрут на «/add.html», либо измените ссылку «добавить».

Смежные вопросы