LINUX.ORG.RU

Python для Web


0

0

Продолжаю гнуть свою линию и отказываюсь от стабильной и ненапряжной работы РНР-кодера в пользу голодного фрилансинга Django-проектов. Надеюсь, что когда-нибудь эра массового быдлокодинга в вебе закончится и Python займет нишу мейнстрима для малых и средних проектов. Это не фанатизм, а просто выбор того, что больше нравится. Кое-как жить могу, а жиром заплыть всегда успею...

На скрине видно свежий Eclipse с не менее свежим PyDev. Поскольку мейнтейнеры убунты на эти два пакета откровенно забили, я просто скачиваю последнюю версию, распаковываю ее в /opt/ и спокойно работаю. Никакой помойки из этого не выходит. В редакторе расположился middleware для ограничения постинга за единицу времени (как на ЛОРе). Постинг сделан в Ajax, чтобы выпендриться (а как же без этого?).

Оформление вполне стандартное. Шрифты Dejavu везде. Убунта как всегда просто работает и дает работать другим. :)

>>> Просмотр (1024x768, 149 Kb)

anonymous

Проверено: UVV ()

А мне больше komodo-edit понравилось, там даже встроенная подсветка для джанговских темплейтов есть... и автодополнение работает и на питон, и на хтмл и даже на яваскриптовые фреймворки вроде yui, которыми я не пользуюсь, но приятно.

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

Я имел в виду скорость... Вроде как про нее разговор шел

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

>Отличай энтузиастов от бизнеса, это энтузиасты тебе там и с fastcgi и >с прочей херью будут пускать. В бизнесе тебе пару серверов поставят и >всё останется как было 100 лет назад.

Ещё один дебил. В каком "бизнесе поставят" нах, какие "энтузиасты"? Кроме бесплатных хостингов ничего не видел? "Мамбе" расскажи это какой-нибудь.

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

> Пора научится отличать статистику от частных случаев. > LOL, тут уже даже комментировать ничего не буду.

>Ну да, сказать-то вам в этом треде вообще нечего с самого начала, я заметил.

остальные используют ASP.NET, но никак не Python.

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

>fastcgi в случае с PHP не дает каких-либо выгод.. А вот кэширующие >акселераторы - это да :)

Учите матчасть и откройте для себя fpm.

srg11
()

Django - круто. Топик стартер молодец! Но gettext лучше юзать в любом случае. мой опыт мне по крайней мере это подсказывает.

php vs python vs anything esle - не так плох сам язык я считаю как недресированное население которое на нем пишет. питон например ОБЯЗЫВАЕТ писать код красиво. В пхп можешь писать как хочешь и новички считают что это тот самый тру вей. Нормально после этого мало кто начинает писать. Я написал на пхп не один крупный проект. Да не очень удобно многое делать. Но всеравно написали и написали хорошо. (верней что написали не оч хорошо я по карней мере знаю как написать действительно хорошо). Так что если руки прямые и ростут откуда надо - можно наверное хоть на асме писать :) Трудоемко получится правда :)

Почему похамешнеги не переходят на другие языки? Лень! Лень не то что новый язык выучить - лень нормально научится писать. Опять же потому что пхп терпит раздолбайство.

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

Руби не юзал , чемто субъективно он мне не понравился. необходимости в нем не возникало. Поэтому (пока) не коснулся.

К счастью(наверное так) в питоне нельзя(замучаешься) хардкодить в прикладной код хтмлины.

Use django! ЗЫ топик стартеру вопрос. В джанге транковыую версию научили работать с несколкими базами данных или это до сих пор в отдельном бренче только реализовано?

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

>В джанге транковыую версию научили работать с несколкими базами данных >или это до сих пор в отдельном бренче только реализовано?

Бугагага. И после этого топикстартер хвастает тут этим дебильным джанго?? В САД.

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

>Программист не тот кто знает сотню языков, а тот кто сможет в любом языке быстро разобраться и сделать что-то полезное за приемлемый промежуток времени.

Ну и как ты узнаешь, в каком языке разбираться, если ты никаких языков не знаешь? Да и фиг ты разберёшься сходу в forth, common lisp, assembler, если ты кроме императивщины нифига не умеешь. На питоне ты может и напишешь, а надо будет на smalltalk или haskell написать — завязнешь.

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

>LOL, тут уже даже комментировать ничего не буду.

Луговского на тебя нет. Даже не представляю, как можно быть таким быдлом, знать только 4 языка и только одну парадигму. О метапрограммировании речь вообще не идет.

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

> Ещё один дебил. В каком "бизнесе поставят" нах, какие "энтузиасты"? Кроме бесплатных хостингов ничего не видел? "Мамбе" расскажи это какой-нибудь.

Это ты дебил точнее энтузиаст, не надо делать вид что ты имеешь понятие о чём говоришь, тогда умней будешь выглядить. Ещё пару серваков и балансировка дешевле чем переписывать код. Так что уйди в себя, навсегда.

valeri_ufo
()

Автору скрина курить PEP8.

И обязательно осилить gettext, без него вообще никак и никуда (даю наводку: склонение числительных).

Воинствующим пыхпыхерам: да слабаки вы :) Кто из вас сравнивал на деле пайтон и пыхпых и остался верен последнему?

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

Тишина. Сказать-то сторонникам глобального и надежного нечего.

Кстати, автор, нахрена ваять мидлварь, если обрабатывает она только один вид? Почему бы этот fuzzy logic не сунуть в код этого самого вида? Симплер из беттер зен комплекс, кури помимо PEP8 еще PEP20 :) Ну и выше писали уже, наведи справки на тему труёвого контент-тайпа аякс-респонза.

Короче так: быдлокодинг не рулит независимо от языка. Если берешься кричать, что язык A круче языка B, освой язык A хотя бы настолько, чтобы не было стыдно за несчастных полэкрана кода.

ЗЫ: Эклипс ужасен, половину скриншота занимают его мерзкие панели :-\

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

> Почему бы этот fuzzy logic не сунуть в код этого самого вида?

Потому что я следую принципу "максимального дробления на модули". Любое логическое действие должно быть изолировано. Кроме того, на уровне проекта эта мидлварь легко отключается в случае необходимости.

> Если берешься кричать, что язык A круче языка B, освой язык A хотя бы настолько, чтобы не было стыдно за несчастных полэкрана кода.

Мне и не стыдно. А тебе должно быть стыдно, так как по всей видимости ты любитель валить все в кучу с последующим героическим рефакторингом после анального сношения с главным девелопером.

> ЗЫ: Эклипс ужасен, половину скриншота занимают его мерзкие панели :-\

ИМХО удобно и ничего лишнего.

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

> А тебе должно быть стыдно, так как по всей видимости ты любитель валить все в кучу с последующим героическим рефакторингом после анального сношения с главным девелопером.

Хех, тут-то и выясняется причина твоей нервозности, неприятные воспоминания, да? ;) У меня с главным девелопером сходные предпочтения по вопросу декомпозиции :)

Принцип дробления на модули не должен доходить до фанатизма. Смысла выносить функционал, показанный на скрине, в мидлварь нет никакого. А отключать эту фичу можно было бы, например, установкой settings.WAIT_TIME = None. Ты, похоже, просто не въехал, что такое middleware и зачем они нужны. Или ваш главный девелопер индус ;)

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

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

Как по мне, это дело вкуса и твой подход ничем принципиальным от моего не отличается. У меня свои принципы, у тебя свои. Я выношу в теги и мидлварь все, что только можно. Это оправдывает себя со временем, когда эти самые модули легко мигрируют из проекта в проект. Не вижу здесь повода для дискуссии.

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

>>а надо будет на smalltalk или haskell написать — завязнешь.

и кто кроме энтузиастов на этих языках что-то пишет?

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

>Это ты дебил точнее энтузиаст, не надо делать вид что ты имеешь >понятие о чём говоришь, тогда умней будешь выглядить. Ещё пару >серваков и балансировка дешевле чем переписывать код. Так что уйди в >себя, навсегда.

малчык тебя не учили "аргументам и фактам"? или ты гуманитарий? биореактор по тебе плачет

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

> малчык тебя не учили "аргументам и фактам"? или ты гуманитарий? биореактор по тебе плачет

Уси пуси, миленький мой, не требуй от других того чего сам не выполняешь. Жду аргументов и фактов. Собери статистику с твоих серверов где работает fastcgi, где не работает. Насколько большие проекты, сколько они разрабатывались, сколько лет коду, что насчёт рефакторинга, сколько приходилось в последующих годах дорабатывать. Проведи бенчмарки между mod_php и fastcgi с твоими проектами или проектами над которыми ты работал. Можешь ещё назвать оборот фирмы и чем именно занимается. Чтобы защититься от фальсификации попрошу цифровую подпись, чтобы при притензиях к статистике ясно было к кому обращаться. Вот пока этого всего не сделаешь - не появляйся здесь и ничего не пиши, вообще. Буду ждать. Чмокэ.

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

2anonymous (*) (17.07.2008 14:29:12):

> FaceBook тривиальный сервис?

За такие деньги, какие вбухали в создание FaceBook,
его можно было и на Brainfuck'е легко написать. Цель оправдывает
средства. А у людей, стоящих за Facebook этих средств всегда было
достаточно для их грязных целей.

anonymous
()

Друг, скажи, какой IM-клиент используешь? Наверняка же не QT...

//capt: enginer!!!

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

// <?php print "Это мой шаблонизатор"; print "тут тег title открывается"; print $string_with_title; print "тут тег title закрывается"; ?>

хотя django и не мой выбор, но за такой "стиль" программирования надо бить в морду. да так, чтобы то, что внешне похоже на мозги, вылетало из ушей.

anonymous
()

> Python займет нишу мейнстрима

facepalm.jpg

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

если бы ты небыл таким быдланом ты бы знал что php и есть шаблонизатор

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

> fastcgi в случае с PHP не дает каких-либо выгод.. ещё как даёт: отсутствие апача.

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

> python и ruby ненужны есть perl поддерживаю. уже давно пытаюсь понять, зачем нужны эти 2 языка (python и ruby), но всё никак не выходит.

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

Ну если не брать за причину ужасную реализацию ОО то мне вот
больше не понятны зачем нужны другие РАСПОСТРАНЕНЫЕ динамические языки
окромя питона.

1.Нужно на ВЕБЕ с быдло кодирить ( ну тама заюзать в одной странице сразу две БД и тд ) берем mod_python
2.Нужно какой нибудь сайт-CMS сбацать берем Django
3.Нужно WEB приложение берем TG
4. Нужны скрипты по админ. системы - просто питон
5. Нужна гуевая приблуда или гуй морда к проге на С - берем pyGTK
6. Нужны скрипты(приблуды) ко всяким Опен Офисс, Naутилус, Гимп и т.д.
опять берем Питон
7. Перекодировать мп3 теги - питон
8 ....
( поставьте сюда все кто что вспомнит и скорее всего с этим справиться питон )
ну и т.д.

Я конечно не говорю что Питон универсальный но достаточно не плохо справляеться с поставлеными задачами. Некоторые крутые конечно оруть
что каждый язык для своей задачи. Ну что же - флаг им в руки.
Пускай держат в голове кучу синтаксиса и либ мне вполне хватает и одного !

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

> Некоторые крутые конечно оруть

Не крутые, а вменяемые

> Пускай держат в голове кучу синтаксиса и либ мне вполне хватает и одного !

Не достаточно тебе. Просто ты делаешь тупейшую, примитивную работу, и делаешь её плохо.

P.S. А в вебе все равно рулил, рулит и будет рулить php!

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

>>больше не понятны зачем нужны другие РАСПОСТРАНЕНЫЕ динамические языки окромя php.

fixed

все названные пункты можно сделать и на php

#!/usr/bin/env php <?php // тут код. ?>

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

>> <?php print "Это мой шаблонизатор"; print "тут тег title открывается"; print $string_with_title; print "тут тег title закрывается"; ?>

>хотя django и не мой выбор, но за такой "стиль" программирования надо бить в морду. да так, чтобы то, что внешне похоже на мозги, вылетало из ушей.

и какже правильно?

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

> python и ruby ненужны есть perl

perl нужен только тем, кого в детстве били по голове и у кого, в связи с этим, выработалась стойкая неприязнь к себе. я бы сказал, что perl - основная причина возникновения и быстрого распространения php. после извращений, к которым приходилось прибегать в perl, даже php показался не таким уж кривым и убогим.

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

> objects сам по себе ничего не запрашивает, запрос происходит в момент filter(). так что да, ORM это вполне нормально разруливает.

неверно. метод filter возвращает queryset, а запрос произойдет только про обращении к queryset как к списковому элементу, т.е. при вызове __len__, __iter__ или __getitem__

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

> неверно. метод filter возвращает queryset, а запрос произойдет только про обращении к queryset как к списковому элементу, т.е. при вызове __len__, __iter__ или __getitem__

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

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

> В джанге транковыую версию научили работать с несколкими базами данных или это до сих пор в отдельном бренче только реализовано? нет, пока не научили. а вот newforms-admin в транк слили, да.

barbuza
()

> if view.__name__ == 'comment_add_ajax'

неправильно. после использования декоратора имя ф-ции может измениться. надо импортировать и сравнивать. опять же, ф-ция с таким именем может существовать в нескольких модулях.

> antiFloodMiddleware

имя класса пишем с большой буквы, мкей?

> last_comment = Comment.objects.filter ...

либо эта строчка выкинет exception при отсутствии каментов от данного юзера или если юзер не залогинен, либо следующая кинет AttributeError

> Comment.objects.filter(user = request.user)

надо писать request.user.comment_set

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

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

> Я знаю, просто так наглядней.

Когда с очередным обновлением оно вдруг перестанет работать, наглядность ничем не поможет.

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