Найти - Пользователи
Полная версия: поиск документации по TurboGears для новичка и немного вопросов
Начало » Pyramid / Pylons / TurboGears » поиск документации по TurboGears для новичка и немного вопросов
1 2 3
securelord
Мне нужно написать простое веб-приложение для интранета. Решил - если есть такая возможность то можно потренироваться на питоне написать.
Для экспериментов решил выбрать TurboGears. Раньше работал только с PHP+Smarty, поэтому о MVC я не то что не знаю - а и не понимаю что это такое.
Есть ли документация по тому как сделать с помошью TurboGears простой сайт на одну страницу используя шаблоны?
PooH
На официальном сайте есть туториалы

http://docs.turbogears.org/1.0/Wiki20/Page1
http://docs.turbogears.org/1.0/TodoList

или вам необходимо на русском?
Maximbo
securelord
Для экспериментов решил выбрать TurboGears. Раньше работал только с PHP+Smarty, поэтому о MVC я не то что не знаю - а и не понимаю что это такое.
Об этом в статье Википедии можно глянуть. Если вкратце – это способ отделения мух от котлет.

securelord
Есть ли документация по тому как сделать с помошью TurboGears простой сайт на одну страницу используя шаблоны?
Ещё видео можно глянуть. Очень интересно смотреть как работает другой человек :)
pythonwin
смотреть http://files.turbogears.org/video/20MinuteWiki2nd.mov и делать примеры по http://docs.turbogears.org/1.0/Wiki20/Page1 лучше параллельно :)
PooH
мне еще очень пригодился проект WhatWhat в качестве примера
securelord
Спасибо. Материала накидали мне предостаточно… особенно видео - супер!
Только напрашивается вопрос - как работает КИД? Почитал перевод на этом сайте - как то слету понять не получилось. Какие аналогии между ним и Смарти? Логика cайта получается пишется через controllers.py?
Maximbo
securelord
Спасибо. Материала накидали мне предостаточно… особенно видео - супер!
Только напрашивается вопрос - как работает КИД?
А вы попробуйте просто реализовать что-либо по примерам с сайта. Если что-то непонятно, спрашивайте.

securelord
Какие аналогии между ним и Смарти?
Они оба – шаблонные движки ;) По правде сказать, не логично задавать вопрос по PHP сообществу Python. Лучше сформулировать два вопроса:

* что же я хочу сделать?
* что у меня не выходит сейчас?

и выкинуть их сюда. Вероятность получения помощи в этом случае значительно возрастёт.

securelord
Логика cайта получается пишется через controllers.py?
Да. В этом файле хранится набор MVCшных Контролёров. В шаблонах логику лучше не реализовывать. Дорого обходится в последствии.
pythonwin
securelord
Только напрашивается вопрос - как работает КИД?
можешь почитать доку на русском = http://python.com.ua/translate/kid/
и на английском == http://kid-templating.org/language.html
securelord
Maximbo

Спасибо вам за такое подробнее разжевывание.
Тогда поступим немного по другому:

class Root(controllers.RootController):
@expose(template="wiki20.templates.main")
def index(self , pagename="FrontPage"):
page = Page.byPagename(pagename)
content = publish_parts(page.data, writer_name="html")['html_body']
return dict(data=content, page=page)
Можно подробно пояснить каждую строку кода, что она делает и что возвращает?
Maximbo
securelord
Можно подробно пояснить каждую строку кода, что она делает и что возвращает?
Не вопрос.

@expose(template="wiki20.templates.main")
@expose – это декоратор. Он говорит системе: “данные, возвращаемые методом index будут показаны через шаблон (view в MVC) wiki20/templates/main.kid”

def index(self , pagename="FrontPage"):
Объявляет метод класса (controller в MVC) index. pagename – параметр, передаваемый в него пользователем при запросе. По-умолчанию равен “FrontPage”

page = Page.byPagename(pagename)
Эта строка вынимает из таблицы page в БД (model в MVC) объект страницы с pagename == pagename (который передали вторым аргументом index)

content = publish_parts(page.data, writer_name="html")['html_body']
Тут содержимое объекта page рендерится в html через стандартную библиотечную ф-цию publish_parts. Не имеет прямого отношения к TG.

return dict(data=content, page=page)
Метод index возвращает словарь (dict). Позднее его содержимое будет использовано в шаблоне “wiki20/templates/main.kid”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB