Здравствуйте, dmz, Вы писали:
CP>>PHP? dmz>Вы будете смеяться, но в итоге python. web.py + SQLAlchemy + nginx (или lighttpd)
Я полтора месяца назад переписал часть под web.py, для шаблонов использовал Cheetah.
А щас переписал все на Django v0.95. Кайфую.
B>А щас переписал все на Django v0.95. Кайфую.
А зачем, кстати? Мне что в TG, что в Django не нравятся их ORMы — по сравнению с
SQLAlchemy это... просто примитив. А что бы открутить ORM от фреймворка и прикрутить
другой — надо его хорошо изучить, да и что останется?
В web.py и изучать нечего — простой и надежный. И с nginx заработал сразу.
B>>А щас переписал все на Django v0.95. Кайфую. dmz>А зачем, кстати? Мне что в TG, что в Django не нравятся их ORMы — по сравнению с dmz>SQLAlchemy это... просто примитив. А что бы открутить ORM от фреймворка и прикрутить dmz>другой — надо его хорошо изучить, да и что останется?
А у меня Berkeley DB для большинства данных, потому что данные очень мелкие (слова и наборы слов).
И еще очень популярный запрос — дать N-е слово в таблице (одно) или N-й список слов.
Лучше я уж его руками сделаю, чем через SQL гонять. Глядишь, производительность в 100 раз поднимется
Хотя эту реализацию тоже наверное передизайнить надо будет при случае. dmz>В web.py и изучать нечего — простой и надежный. И с nginx заработал сразу.
А систему шаблонов ты какую используешь? Это еще одна весьма религиозная вещь. Я видел почти все, какие есть. Django-шаблоны для меня показались самыми удобными в использовании (за исключением ifequal из Django)
Мне не нравилось, что логика web-UI написана на питоне. Ужасно некрасивый код получался. Похуже, чем в php.
B>А систему шаблонов ты какую используешь? Это еще одна весьма религиозная вещь. Я видел почти все, какие есть.
cheetah + xsl
если есть что-то сильно лучше, хочется увидеть, конечно. Но мне показалось, что они все примерно одинаковые,
хоть и пыжаться быть разными.
B>Мне не нравилось, что логика web-UI написана на питоне. Ужасно некрасивый код получался. Похуже, чем в php.
а в остальных с этим лучше? Я имею ввиду kid и django прежде всего.
Здравствуйте, dmz, Вы писали:
B>>А систему шаблонов ты какую используешь? Это еще одна весьма религиозная вещь. Я видел почти все, какие есть. dmz>cheetah + xsl dmz>если есть что-то сильно лучше, хочется увидеть, конечно. Но мне показалось, что они все примерно одинаковые, dmz>хоть и пыжаться быть разными.
посмотри pymeld, он совсем другой
задачи-то одни и те же, поэтому системы шаблонов похожие. но не все шаблоны решают все задачи.
разные в них следующие вещи:
1 — подстановка локальных переменных (возможно/нет/автоматическая)
2 — возможен ли изнутри вызов питоновских функций и как это сделать
3 — как делается размножение нужных элементов ну и например чередование 2х стилей по ним
4 — есть ли внутренняя установка переменных
5 — есть ли внутренние циклы
6 — есть ли внутренняя подгрузка данных откуда-нибудь, например, из web-services (как-то мой товарищ xsl расширял этой фенькой)
7 — xml-based: плюсы — валидация, минусы — древовидность.
B>>Мне не нравилось, что логика web-UI написана на питоне. Ужасно некрасивый код получался. Похуже, чем в php. dmz>а в остальных с этим лучше? Я имею ввиду kid и django прежде всего.
kid — xml-based, мне это не понравилось. я считаю, что xml и xsl — не для людей, даже если есть удобный редактор. например, когда я недавно хотел поработать с xsl, меня очень смущала невозможность заиспользовать функции моего любимого языка программирования...
django — наподобие smarty и cheetah, но есть пара наворотов:
1) (от smarty) вызов питоновских функций-шаблонов таким образом: {{ var | wordwrap:70 | linebreaks }}
2) именованные области документа — blocks. наследование документов для цели переписывания именованных областей. для web-а самое то. создал базовый шаблон и поехал. простые вещи остаются простыми, и это круто.
B>например, когда я недавно хотел поработать с xsl, меня очень смущала невозможность заиспользовать функции моего B>любимого языка программирования...
Кстати, можно — для питона еще и довольно просто. По-моему, примеры есть в документации к python-libxslt
B>django — наподобие smarty и cheetah, но есть пара наворотов: B> 1) (от smarty) вызов питоновских функций-шаблонов таким образом: {{ var | wordwrap:70 | linebreaks }}
не понял, в чем прикол.
B> 2) именованные области документа — blocks. наследование документов для цели переписывания именованных областей. для web-а самое то. создал базовый шаблон и поехал. простые вещи остаются простыми, и это круто.
B>>например, когда я недавно хотел поработать с xsl, меня очень смущала невозможность заиспользовать функции моего B>любимого языка программирования...
dmz>Кстати, можно — для питона еще и довольно просто. По-моему, примеры есть в документации к python-libxslt
B>>django — наподобие smarty и cheetah, но есть пара наворотов: B>> 1) (от smarty) вызов питоновских функций-шаблонов таким образом: {{ var | wordwrap:70 | linebreaks }}
dmz>не понял, в чем прикол.
wordwrap и linebreaks — функции питона, var — переменная, переданная шаблонам. {{ ... }} — выполнить подстановку результата. впрочем, если проблема безопасности шаблонов тебя не волнует, то аналог из cheetah — прямой вызов функций — еще удобнее.
B>> 2) именованные области документа — blocks. наследование документов для цели переписывания именованных областей. для web-а самое то. создал базовый шаблон и поехал. простые вещи остаются простыми, и это круто.
dmz>Это есть в cheetah
А этого я не знал. Неудобно потому что...
3) Интернационализация специальным тегом
{% trans %} текст {% endtrans %}