Найти - Пользователи
Полная версия: Django - чемодан без ручки
Начало » Django » Django - чемодан без ручки
1 2 3 4
FishHook
Есть у нас один проект, за несколько лет разработки пришли к тому, что шаблоны Джанги - это конкретный ахтунг, ORM - это ахтунг в квадрате, роутинг приемлем, но это все равно с запахом какашек, формы не соответсвуют не то что MVC, а даже заявленному MVT. Слава богу хоть запилили елифы в шаблонах и секьюред-куки, кастомные хеши паролей и т.д.
Фишка в том, что отказаться от Джанги полностью и перейти на что-то кошерное, имея на руках рабочий проект выходит чересчур накладно.
Используем jinja2, aldjemy, wtforms и кучу самописных приблуд, для того чтобы наконец то заставить джангу нормально по человечьи работать.
Я не понимаю, мы такие тупые или Джанга не для средних умов и ей надо уметь пользоваться?
Собственно вопрос то в следующем, мне интересно, как кто из местных Джанго-гуру как ее под себя допиливает, делимся советами, давайте обмениваться решениями.
Например, интересно, есть ли у кого-нибудь опыт впиливания peewee?
Или, например, было бы прикольно заюзать deforms.
newca9h
Здравствуйте! Скажу банальную глупость, но у меня к вам встречный вопрос. А может все таки отказаться от Django, раз уж вы уже используете jinja2, wtforms и aldjemy? Используйте Flask и SQLAlchemy. Уже нашлись умы, написавшие админку, аля Django Admin. По вашему сообщению вообще не понятно, что вас конкретно не устраивает в тех же шаблонах или в ORM.

Из моего опыта использования Django, я всегда вначале плювался на что-то(потому что не так работало или вовсе не работало), но потом, по мере приобретения знаний, понимал, где мой косяк и все работало на ура. НО! Мне еще не довелось делать что-то бооольшое или высоконагруженное, поэтому мои воззрения все таки субъективны и ограничены опытом использования, но пока меня устраивает практически всё в Django, а что не устраивает(например, родной дизайн админки) довольно легко исправляется или подменяется.
buddha
Читал в коментах на хабре… Кто то недовольный сменил Django на Tornado. А еще кто-то вообще без фреймворка работает, на стандартных библиотеках…

bismigalis
Django хороша целиком, если поменять какой-нить компонент, то теряется основное преемущество джанги - сторонние аппы.

А так выбор есть:
Flask/Pyramid + Peewee/SQLAlchemy + Jinja2/Mako/Chameleon + WTForms/Deform
cpu
buddha
Читал в коментах на хабре… Кто то недовольный сменил Django на Tornado. А еще кто-то вообще без фреймворка работает, на стандартных библиотеках…
А респонзы почтой шлют, через главпочтампт. И фаервол лихим пацанам с хабра и не надо - ведь у них есть егерь с сайгой. Не знаю, как вы, но я этого не понимаю.
buddha
to cpu
Та я писал к тому, что потребности у всех разные, что нужно подыскивать инструменты подходящие для своей личной потребности, что у всего есть свои недостатки/достоинства…

run
По поводу чемодана пока еще не определился, но вот проблема возникла на пустом месте, и думаю может не браться за этот чемодан пока не поздно.
Хотел сайт сделать где много текстовых данных, ну и блог для представления текстовых данных в принципе неплохо должен пойти. Взял django + cms mezzanine.jupo.org
На небольшом объеме все красиво. А вот когда подгрузил 40 тыс страниц (а это не предел), то сайт стал просто тормозить по минуте. Связано как мне кажеться с тем что при отображении информации в блоге запрашиваются в базе все посты и потом фильтруются и бьются на страницы каким то методом джанговским методом paginate. В итоге хотел совета. Где хранить тексты в базе или в файлах ? И может кто присоветует cms или движок блога на джанге ? Или не браться за написание проекта где происходит манипуляции и поиск данных с использованием джанги ?
ЗЫ Новичок, сильно не пиннайте
FishHook
Учитывая недовольство камрада Кошелева, вношу конкретику. И так:
class SomeForm(forms.ModelForm):
    class Meta:
        widgets = {
                   'income_date' : forms.TextInput(attrs={'class':'calendar'}),
                   'income_order_date' : forms.TextInput(attrs={'class':'calendar'}),
                   'outgoing_date' : forms.TextInput(attrs={'class':'calendar'}),
                   'outgoing_order_date' : forms.TextInput(attrs={'class':'calendar'}),
                       }
Данный подход вызывает по меньшей мере удивление, чего мы ждем от класса формы?
1. Валидацию данных
2. Привязку данных к модели
3. Отрисовку формы в шаблоне
Нужно ли программисту, который пишет этот класс, знать, какой именно параметр “class” будет у того или иного инпута или подобные решения должны приниматься на уровне разметки HTML?
Как нам это предлагают реализовать в wtforms
<form method="POST" action="/login">
    <div>{{ form.username.label }}: {{ form.username(class="css_class") }}</div>
    <div>{{ form.password.label }}: {{ form.password() }}</div>
</form>
и все бы ничего, но в шаблонизаторе Джанги нельзя применить функцию, вернее можно, если функция без параметров. Это второе “не понимаю” с которым мы сталкиваемся. На каждый чих, который чуть-чуть выходит за рамки “самого обычного кода” Джанга нам предлагает создать Шаблонный Тег. Если в шаблоне нужно от A отнять B - будьте добры выдумывать велосипед. Обратиться к словарю по ключу - второй велосипед, объявить переменную в шаблогне - третий велосипед.
Пусть кто-то говорит, что всё это якобы не нужно. А вот нужно, иначе не было бы jinja2, wtforms, mako, chameleon.

to be continued
ZZZ

ИМХО, джанга хороша на небольших проектах. Как только хочется чего-нибудь странного, она сразу же начинает лажать.

Saturn
У меня тоже как такового большого опыта нету с Django, но в принципе пока почти во всем устраивает. Мне кажется не нужно сильно минимизировать код чтобы в дальнейшем было проще разобраться (изменять) по необходимости, а также использовать Ajax.
Ведь прямой конкурент по WEB это PHP который в свою очередь плодит в 10 раз более кода, но почему то многие отдают предпочтение именно PHP.

Вот что мне не понравилось в Django (с чем пришлось столкнуться) - это “request.session” которые нельзя изменять, но к счастью SESSION_SAVE_EVERY_REQUEST = True все решило.

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