1) Шаблонный движок: что-то для вас, чтобы абстрагировать ваш HTML от вашего кодаИмеет смысл.
Есть несколько из них.Мако пытается использовать много общих идиом Python в шаблонах, чтобы избежать необходимости изучать много новых концепций.Jinja2 похож на Django, но с большей функциональностью.Genshi, если вам нравятся шаблоны на основе XML.
Как новичок в этом, трудно сказать, с чего проще всего начать, к сожалению.Возможно, Джинджа2.
2) SQLAlchemy et al.ОРМ.Хорошо.
Да.
3) Рендерер.Понятия не имею.
Рендерер - это опция конфигурации представления Pyramid, которая сообщает Pyramid, что если ваше представление возвращает dict, то оно должно быть передано указанному 'renderer'.Рендереры настроены на работу с именами расширений, а Pyramid поставляется с несколькими встроенными: http://docs.pylonsproject.org/projects/pyramid/1.0/narr/renderers.html#built-in-renderers
Короче говоря, опция рендерера просто смотрит на передаваемое вами имя и находит механизм шаблонов, который соответствуетрасширение (.mak, .pt, 'json', 'string', .etc) и визуализирует с ним результаты dict.
Во многих средах вы не определяете рендерер как конфигурацию, а вместо этого имеетенекоторый код внутри представления, который выглядит примерно так:
def somefunc(request):
return render_to_response('/some/template.mak', {})
В Pyramid вы можете сделать то же самое с:
@view_config(renderer='/some/template.mak')
def somefunc(request):
return {}
Есть несколько причин, по которым последняя является полезной возможностью:
Когда он полностью в конфигурации, вы можете переопределить рендер, не изменяя логику кода вида.
Вы можете добавить несколько конфигурацийкоторые изменяют средство визуализации на основе других условий.
Рассмотрим этот пример, который изменяет средство визуализации в зависимости от того, является ли HTTP-запрос XHR (AJAX-запросом, в котором требуется JРезультат в формате SON вместо обычного HTTP-запроса, который требует, чтобы механизм HTML выдавал HTML).
@view_config(renderer='json', xhr=True)
@view_config(renderer='/some/template.mak')
def somefunc(request):
# lookup some_dict_data in a db, etc.
return some_dict_data
4) Библиотеки JS: JQuery et al.Не знаю, для чего они нужны, кроме добавления симпатичных эффектов.Как это взаимодействует с движком шаблонов?Как это взаимодействует со всей структурой?Могу ли я написать код для jquery в пирамиде, или я пишу JS отдельно, вставляю свой файл JS в свой шаблон или ...?
Библиотеки JS облегчают написание Javascript.Они взаимодействуют в браузере с DOM и не взаимодействуют с Pyramid, кроме отправки HTTP-запросов вашему веб-приложению, которое может запрашивать результаты в формате JSON.
Для начала я бы предложил полностью игнорировать Javascript до тех пор, пока вы не 'Вы гораздо лучше знакомы с HTML, деревом DOM и приобретением сайта, который работает только с HTML, CSS и веб-приложением.
5) Библиотеки шаблонов форм (formish, formalchemy и др.)Как они связаны с общей картиной?куда они подключаются?
Я бы настоятельно рекомендовал полностью их игнорировать и писать основные элементы HTML-формы.Вы новичок во всем веб-стеке, и на самом деле нет необходимости переходить прямо к самым продвинутым аспектам веб-разработки, не ознакомившись сначала с основами.
Что вам понадобится после написания базовых форм, вам нужна библиотека проверки формы, которая упрощает проверку того, что отправленная форма содержит допустимые параметры.В старые времена PHP люди писали сотни строк операторов if / else, которые проходили через формы (некоторые до сих пор делают! Ack!).
В настоящее время мы используем библиотеки проверки формы, которые упрощают объявление допустимых параметров формы.Для начала я бы предложил FormEncode, поскольку он довольно прост в использовании просто для проверки.Для Pyramid самый простой способ начать работу с FormEncode - это, вероятно, pyramid_simpleform: http://packages.python.org/pyramid_simpleform/
На данный момент проигнорируйте часть визуализации формы и напишите элементы формы HTML в шаблоне самостоятельно, а для простоты используйте pyramid_simpleform.Интеграция FormEncode.
Короче говоря, начните с простого отображения HTML-страниц со ссылками с использованием функций просмотра и шаблонов (и используйте диспетчеризацию URL-адресов, это легче понять, чем обход для начинающих). Затем добавьте формы, их HTML и проверку, затем добавьте CSS, чтобы начать стилизацию.
Затем вы можете начать с некоторого базового Javascript с jQuery, чтобы заставить вещи перемещаться по странице, и перейти к взаимодействию с веб-приложением через AJAX, чтобы получить больше данных. Только не занимайтесь слишком много сразу, и вам будет легче увидеть, как они сочетаются друг с другом.