Да, но как минус мало документации на русском, но в принципе архитектура у него прозрачна, да и на англ неплохая документация, так можно въехать, при желании
>Увы я тебе не могу предложить писать веб приложения на Python используя только стандартную библиотеку
Я тебе говорю, что для тебя морковка (Django) — уже сладко, ты мне говоришь, что мне не понравится сладость картошки (стандартная библиотека). Боюсь, что у тебя не хватает логики :)
…
Я, лично, предпочитаю более «сладкие» решения. И там, где на Django мне приходилось писать по 10-20 строк кода, обходиться 1-5 строками.
Зависит от задачи. Где-то будет больше функциональности, больше сделано заранее, но его нужно будет дольше учить и он будет менее универсальный. А где-то будет меньше функций, типа как в kohana, но он будет прост и универсален.
Кстати, давай сравним. Может, в Django за последний год что-нибудь заметно улучшили :) Простая задача. Есть загружаемая страница, в шаблон которой вставляется модуль с каким-то параметром. Нужно при нажатии на кнопку поменять выведенный модулем код на другой, того же модуля, но другого параметра. Ну, пусть для определённости, выводится список новостей за сегодня, а при нажатии на кнопку «вчера» нужно подменить его на вчерашний.
<ul>
{foreach $news_list as $n}
<li>{$n->titled_link()}</li>
{/foreach}
</ul>
Можно, конечно, и на phaml (yaml+php), будет компактнее, но не наглядно. Или на голом PHP. Пусть будет smarty. В любом случае замена шаблона — это только замена файла.
Наша страница:
classes/news/main.php
class news_main extends bors_page
{
// Данных никаких в примере нет, можно ничего не использовать
// Но на странице для простоты используем jquery. Подключим:
function pre_show()
{
template_jquery();
return parent::pre_show();
}
}
По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения, что по определению бессмысленно :) И про «ненужную ручную работу» в сравнении PHP с питоном я бы вообще не говорил - смешно.
>По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения
По-моему, очевидно, что я сравниваю два фреймворка.
И про «ненужную ручную работу» в сравнении PHP с питоном я бы вообще не говорил - смешно.
Ну так давайте пример на Django! Я же привёл пример на BORS :)
Почему в ответ на конкретное примитивное решение, написанное за 5 минут, из которых 3 минуты ушли на войну с форматированием ЛОРовского движка, идут одни только отмазки?
>> По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения
По-моему, очевидно, что я сравниваю два фреймворка.
Уточню, что _как язык_, Python мне очень нравится, в отличие от PHP, который для меня просто инструмент. И всякие мелкие системные скрипты я пишу обычно именно на Питоне. Но вот сайты предпочитаю разрабатывать на PHP.
А тут вопрос подхода - на php можно написать сайт одним файлом, но суть от этого не меняется. На питоне точно так же одним файлом можно написать самостоятельный асинхронный http-сервер, который будет, не требуя ни апача, ни нгинкса, отдавать странички тысячам клиентов сразу. А да, и еще - в случае с php чаще всего подобное творение представляет собой дикую смесь html со встроенными тегами.
Кому что нравится, но сайты на питоне и писать, и поддерживать - одно сплошное удовольствие, в отличие от большинства, написанного наспех на php. Хотя у второго фреймворков и побольше, но сути это не меняет :)
>А тут вопрос подхода - на php можно написать сайт одним файлом
И что дальше? Я привёл пример «одного файла»?
На питоне точно так же одним файлом можно написать самостоятельный асинхронный http-сервер
Да, но какое это отношение имеет к сравнению фреймворков?
в случае с php чаще всего подобное творение представляет собой дикую смесь html со встроенными тегами
Где в примере выше такая смесь?
Кому что нравится
Безусловно. Но выше звучало мнение, что Django априори удобнее и качественнее любого PHP-фреймворка. Вот подтверждение этого мнения (или признание его неправоты, или приход к тому или иному консенсусу по вопросу сравнения фреймворков) я и жду.
В осталном разницы с джанговским кодом не будет, только всякие там *bors* заменить на свои. Как сделать вызов модуля из джанговского шаблона я что-то не припомню сходу. Можно?