Django

Apr. 15th, 2008 09:42 am
dimrub: (Default)
[personal profile] dimrub
Скажите, а есть ли среди читающих этот журнал спецы по Джанго? То есть, люди, которые его действительно хорошо знают? Хотел бы пару вопросов задать.

on 2008-04-15 08:35 am (UTC)
Posted by [identity profile] mikkim08.livejournal.com
А можете рассказать, зачем веб-аппликации писать на питоне, а не на джаве например ? Не в смысле holy wars, а вообще.

on 2008-04-15 08:57 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Проще, быстрее. J2EE это вообще из пушек по воробьям, а с севрлетс я просто никогда не работал.

on 2008-04-15 09:09 am (UTC)
Posted by [identity profile] mikkim08.livejournal.com
Проще, быстрее. J2EE это вообще из пушек по воробьям

Может быть.

А есть на питоне аналог сервлет-контейнер'а, типа томката?

on 2008-04-15 09:39 am (UTC)
Posted by [identity profile] avnik.livejournal.com
WSGI -- стандартный способ делать "контейнер" в питоне ;)
Его понимают почти все питоновые веб-сервера, и mod_wsgi для апача.

on 2008-04-15 09:54 am (UTC)
Posted by [identity profile] mikkim08.livejournal.com
Ясно, спасибо.
Надеюсь, гугловский app.engine его и использует.

on 2008-04-15 09:56 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Да, именно его.

on 2008-04-15 09:56 am (UTC)
Posted by [identity profile] avnik.livejournal.com
Не используют.
почему -- не понятно.

on 2008-04-15 09:57 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Как же не использует? Джанго же над ним и построен, а он джанго использует.

on 2008-04-15 09:56 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Не знаю, точный ли это аналог, но вот веб-фреймворки, типа того же Джанго, помогают писать веб-аппликации.

on 2008-04-15 10:07 am (UTC)
Posted by [identity profile] avnik.livejournal.com
В анонсе там писали что они дают CGI ;) а поверх него уже можно натянуть WSGI. Это все таки не совсем то будет.

on 2008-04-15 10:09 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Нет, они дают Джанго (правда, сильно урезанный) и еще некий свой фреймворк, тоже над WSGI.

on 2008-04-15 10:14 am (UTC)
Posted by [identity profile] mikkim08.livejournal.com
Фреймворк это да, но должна быть еще некая runtime среда между фреймворком и сервером типа апача.

Которая бы делала всю грязную работу, а именно запускала и пулила треды, открывала и пулила коннекции к базе данных (и другие ресурсы), хранила бы сессию и т.д.

Видимо WSGI это и делает.

on 2008-04-15 10:18 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Да, именно так. Я, например, запускаю аппликацию из apache, посредством mod_python.

on 2008-04-15 01:16 pm (UTC)
Posted by [identity profile] mikkim08.livejournal.com
Спасибо.

on 2008-04-15 09:57 am (UTC)
Posted by [identity profile] avnik.livejournal.com
Ну я не эксперт, но за полгода пару проблем разруливать призодилось,
Спрашивай ;)

on 2008-04-15 10:05 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
О, ура!

Вопросы таковы:

1. Я знаю, что в модели можно определить функции, которые будут высчитывать некие значения на основании других полей (которые из базы данных). А можно ли определить функцию, которая бы высчитывала значение на основании не только текущего, но и других записей (из той же таблицы, допустим)? То есть, я вижу как минимум два возможных подхода, вопрос - какой правильный.

2. Можно ли в админ интерфейсе соорудить view, в котором будут сразу и list, и add/change? Пока что не вижу другого способа, кроме как сделать extends на какой-то один template, и добавить туда же функциональность второго (но тогда и view тоже надо переписывать)

3. Можно ли в list view выбирать колонки для показа не статически (в определении модели) а динамически (например, на основании профиля текущего пользователя)?

Был еще вопрос о том, как можно показывать данному юзеру только его записи из базы данных, но это я решил уже.

on 2008-04-15 10:10 am (UTC)
Posted by [identity profile] avnik.livejournal.com
Про первое скажу -- можно

@property
def foo(self):
return SomeOtherModel.objects.get(id=self.child_id,type=self.type)
я делал

Про админку не скажу -- я ненастоящий сварщик ;)

on 2008-04-15 10:13 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
@property
def foo(self):
return SomeOtherModel.objects.get(id=self.child_id,type=self.type)
я делал


Ага, я так и предполагал. Должно быть довольно медленно на больших дата сетах.

on 2008-04-15 10:16 am (UTC)
Posted by [identity profile] avnik.livejournal.com
У меня доченрний объект всегда один
по type на самом деле выбирается класс/таблица
А сама выборка --- по pk
(дурацкий хак на самом деле получился ;)

Profile

dimrub: (Default)
Adventures of a somewhat curious character

September 2013

S M T W T F S
12 345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 05:25 am
Powered by Dreamwidth Studios