LINUX.ORG.RU

Что плохого в Django?


0

1

Привет, привет. Вот, сижу, читаю ветку про «почему PHP это плохо?», и наткнулся на комментарий, мол, на питоне можно писать изящно, если, конечно не использовать Django. Ну поясните мне что-ли по хардкору, чем плох питон Django?


Не пойму чем вам Zope так не нравится. вот как вы в джанго сделаете 2 дизайна выбираемые автоматически в зависимости от типа браузера. В Z3 есть скины, а в z2 траверзом.

Как вы на одной странице разместите несколько объектов, да еще так чтоб они хоть и взаимодействовали друг с другом, но ничего о внутренностях другого не знали. А через пол года уберете один и добавите еще два. У Zope для этого есть слои. Как это реализуется в Django?

И при этом это все должно работать на произвольных компонентах, а не на 0.1% который знает друг о друге.

anonymous
()
Ответ на: комментарий от anonymous

Не пойму чем вам Zope так не нравится. вот как вы в джанго сделаете 2 дизайна выбираемые автоматически в зависимости от типа браузера. В Z3 есть скины, а в z2 траверзом.

Миксин переключения шаблонов?

Как вы на одной странице разместите несколько объектов, да еще так чтоб они хоть и взаимодействовали друг с другом, но ничего о внутренностях другого не знали.

ШТО

jessey
() автор топика
Ответ на: комментарий от jessey

Чтонибудь из серии http://wiki.zope.org/zope3/HowDoIUseZ3cTemplate

У меня на страничке 3 объекта. Wiki, голосовалка и Disquss. Я определил три пэйджлета или слоя. Для каждого объекта есть свои шаблоны. Но JS весь вверху.

при этом завтра Дискас я могу заменить на другой движок. В контекстной директории (пусть /xyz/) лежит 3 шаблона (для каждого из объектов) и 3 объекта. Но если в Z2 я зайду по /ie/xyz Я попаду на другие шаблоны.

В Z3 я могу перенаправить URL траверзом.

При этом в отличии от миксина переключения шаблона который надо вписать ВО ВСЕ реализации переписывать классы мне не нужно (конечно если идиот не сделал шаблон полем класса, ну тогда враппер).

Это ведь простые каждый день встречающиеся в жизни задачи.

anonymous
()
Ответ на: комментарий от jessey

ага в стороннем софте в котором этих миксинов небыло.....

И да вежливость никто не отменял.

anonymous
()
Ответ на: комментарий от zz

Сайту 100 лет. Или вы не слышали про модульность? Как мне прикажете развивать его если в шаблонах тупо вышит вызов всех полей объектов для отрисовки вместо методов .render() Которые можно предусмотреть и в Django. Однако в Django это не принято и отрыв шаблона от объекта дается большой кровью.

anonymous
()
Ответ на: комментарий от anonymous

Рендер отрывается от объекта? Какая разница у тебя чтото в шаблоне или в рендере. Поясните суду с примерами кода желательно.

zz ★★★★
()
Ответ на: комментарий от anonymous

Моя мысль о том, что конечно можно сделать из джанги зопу, возможно это даже интересно в качестве факультатива, но смысла в этом мало. То что в джанге чтото принято делать не так как в зопе ничего не говорит о пригодности первой или второго для конкретного проекта.

zz ★★★★
()
Ответ на: комментарий от zz

Щас попробую:

Стандартный Django стиль

render2response("template_name.html",{"a":obj1,"b":obj2});

<form ...>
<input name="xyz" value="{{ a.xyz }"/>
<input name="xyz1" value="{{ a.xyz1 }"/>
</form>

<form ...>
<input name="xyz" value="{{ b.xyz }"/>
<input name="xyz1" value="{{ b.xyz1 }"/>
</form>

То о чем говорю я:

render2response(context["template_name"],{"a":obj1,"b":obj2});
{{ a.render(context) }}
{{ b.render(context) }}

При этом a и b умеют рисоваться и берут СВОИ шаблоны из context. context же определяется в начале. Тогда когда URLResolver еще работает. Там можно вмешаться и положить шаблоны....

Я не говорю, что в django так нельзя. Так не принято.

anonymous
()
Ответ на: комментарий от anonymous

Ну с формами все ок. Они есть из коробки и умеют себя рисовать сами более или менее кустомизированно. Про шаблоны/рендер понял, не думаю что это трудно сделать если это реальне каждодневная задача у проекта, но я таких проектов не видел :)

zz ★★★★
()
Ответ на: комментарий от zz

Так слои и позволяют кастомные вещи распихать. Чтоб CSS и JS лезли в head. Кстати у Tornado тоже такое есть

anonymous
()
Ответ на: комментарий от anonymous

Да кстати, согласен, ассет менеджмент в джанге сейчас - это ад. был бы студентотой взял бы GSoC проект :)

zz ★★★★
()
Ответ на: комментарий от anonymous

Чем тебя не устраивает определение в шапки блока head_js, например? И там, где надо, добавление в него нужных скриптов?

jessey
() автор топика
Ответ на: комментарий от jessey

тем же почему такого нет ни в Qt ни в GTK ни даже в WinAPI.

Безобразие в Web связано с мифом, что дизайнер сможет править шаблоны в DreamWaver. Это миф.

В Qt я добавляю в окно виджет и он сам рисуется. Я никогда не писал отрисовку grid с 10000 полей. Но в web я пихаю в table {{ fieldA }} каждый божий день.

Google это поняли и создали тулкит. Но прошу учесть, что Qt не отменяет рисование на канве. Просто оно нужно раз в 100 лет.

А еще никто не задумывается как в Grid приходит onClick. Зато о роутерах и траверзе спорят как черти лысые. А это не должно быть предметом для спора. Это просто должно работать.

anonymous
()
Ответ на: комментарий от anonymous

а зоуп вообще существует?

zope3 вроде как bluebream (как то так) называется

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.