LINUX.ORG.RU
 
Komintern

Веб-питонщиков тред


0

6

Здравствуй, мой дорогой ночной лор.
Дабы не тратить время на гугление и разбор противоречивых результатов, спрошу у тебя - с чего начать учить питон?
Цель - научиться разрабатывать веб-приложения (грубо говоря сайты) за относительно небольшой период (~ 1 год). В треде приветствуются ссылки на мануалы, книги, руководства (очень-очень желательно на русском языке).
Есть опыт написания небольших штуковин для себя на bash и CL.
Знаю что питонщики любят джангу, так что джанго-специфичные доки тоже покатят, как и любые ее альтернативы.
Также просветите что сейчас модно в сфере веб-разработок - про ajax, jquery и прочие страшные слова. Короче надавайте советов мне, желающему писать на питоне для веба.


[#]  
shimon

Стандартная дока по питону очень хороша.

**** ()
[#] Ответ на: комментарий от shimon 04.01.2012 0:13:43  

И по Django, кстати, тоже.

* ()
[#] Ответ на: комментарий от power 04.01.2012 0:16:14  
Komintern

вот! за что я и люблю ЛОР. спасибо =)
теперь разрешаю флудить здесь о нужности и ненужности питона. и даже требовать переписать на нем лор.

***** ()
[#]  
vostrik
>>-----Цитата---->>

Также просветите что сейчас модно в сфере веб-разработок - про ajax, jquery и прочие страшные слова.

<<-----Цитата----<<

mongodb и html5 модно, весело, молодежно. инфа 100%

** ()
[#] Ответ на: комментарий от vostrik 04.01.2012 0:23:10  
Komintern

кстати да )) html5 - суровая штука. спасибо за напоминание.

***** ()
[#]  
beka

1. В качестве введения в язык - не знаю, все почему-то советуют Марка Лутца.
2. Углубляемся... - Pro Python - очень-очень советую.
3. Для Django можно почитать туториал, который весьма неплох.
4. После знакомства с Django, можно ознакомиться с этой книжкой. Можно просто пролистать. ЕМНИП в книжке описано как сделать блог, форум, пастебин, все очень типовое... для тех у кого нет опыта.
5. Pro Django. В принципе, в ней нет ничего чего бы не найти на офф. сайте, но тем не менее книга очень хорошо структурирует материал в голове.

Потом, неплохо было бы ознакомится с такими проектами как celery и fabric.

С утверждением "питонщики любят джангу", я бы поспорил, мне больше по душе flask. В качестве шаблонизатора я использую jinja2, для ORM - SQLalchemy, для форм - WTForms.

* ()
[#] Ответ на: комментарий от beka 04.01.2012 0:32:02  
Komintern

еще я слышал про pylons. оно живое?

***** ()
[#] Ответ на: комментарий от beka 04.01.2012 0:32:02  
Arandelix

Большое спасибо за алгоритм! Сам давно хотел начать изучение Python'а, да не знал, с чего начинать.

()
[#] Ответ на: комментарий от Komintern 04.01.2012 0:34:17  
beka

>еще я слышал про pylons. оно живое?

Pylons жив, но его не развивают. Т.е. в рамках проекта все силы направлены на Pyramid. Чисто субъективно: на Django удобнее быстро сделать прототип, но потом шаг влево шаг вправо мне дается с большой потерей времени; на Pyramid наоборот, трачу больше времени на прототип, но сопровождение не такое сложное. Еще раз - это субъективно. Картину омрачает только то, что для Django очень много всякой литературы, в то время как Pyramid на русском не представлен почти никак.

* ()
[#]  
stevejobs

Dive in python — весь, сразу за ней — туториал по джанге. Всё.

** ()
[#]  
stevejobs

По JS любой туториал, но сразу как поймешь суть — читать вот это: http://dmitrysoshnikov.com/tag/ecma-262-3

(это блог, поэтому статьи нужно читать начиная с конца, с номера 1)

экономит много нервов.

** ()
[#] Ответ на: комментарий от Arandelix 04.01.2012 0:38:40  
beka

>Большое спасибо за алгоритм! Сам давно хотел начать изучение Python'а, да не знал, с чего начинать.

Не за что! Еще вспомнил неплохую книжку — Learn Python The Hard Way

* ()
[#] Ответ на: комментарий от beka 04.01.2012 0:32:02  
>>-----Цитата---->>

мне больше по душе flask

<<-----Цитата----<<

И как тебе? Чем еще пользовался?

* ()
[#]  
demmsnt

пиши мне завтра demmsnt(at)gmail.com Я как раз коечто жудко простое пишу ворвешся за час...

* ()
[#] Ответ на: комментарий от power 04.01.2012 0:53:30  
beka
>>-----Цитата---->>

Чем еще пользовался?

<<-----Цитата----<<

Из питона много лет использовал на Django. В разное время по мелочи Pyramid и Cherrypy.

>>-----Цитата---->>

И как тебе?

<<-----Цитата----<<

Запустил в продакшен месяц назад проект на Flask`е — полет отличный.

* ()
[#] Ответ на: комментарий от beka 04.01.2012 0:32:02  

как вы жрете это говно под названием жинжа?

()
[#]  

Самое простое - bottle.py.

()
[#]  

отсюда - /usr/share/doc/python-docs-2.6.5/

:)

* ()
[#] Ответ на: комментарий от Komintern 04.01.2012 0:34:17  

> еще я слышал про pylons. оно живое?

Бери сразу Pyramid. Django это что-то вроде вордпресса, только еще дает возможность тебе ручками что-то делать. Если у тебя будут SQL запросы сложнее SELECT * FROM foo WHERE bar = true, то тут сразу будет много проблем, либо напишешь это через т.н. RAW SQL. Сегодня вот столкнулся с тем, что date time поле из модели при обработке в шаблоне локализует дату, т.к. выводится Январь вместо January, а JS при создании объекта Date месяцы считает от 0, получается что нужно выводить месяц цифрами и в JS добавлять декремент. Админка весьма убога, подходит так же для того, чтобы показать табличку. Если нужно inline формы делать, то будет куча проблем с моделями. Примеров я не помню уже, но гемороя было много. Для чего-то серьезного сразу пиши все руками. Да, там еще в админке тебе придется дописывать костыли для создания урлов на отображаемый материал, например. В некоторых местах вообще приходится вызывать у объекта имя класса и потом уже от него ориентироваться что должно идти в шаблоне.

В общем бери Pyramid и не мучай людей, которые будут потом дописывать твое творение :)

** ()
[#] Ответ на: комментарий от kid_lester 04.01.2012 2:40:30  

самое простое это cgi

** ()
[#] Ответ на: комментарий от xpahos 04.01.2012 4:40:14  
>>-----Цитата---->>

самое простое это cgi

<<-----Цитата----<<

Человек, не знающий python, быстрее будет делать то, что ему нужно, на bottle.py, чем на cgi или чём-то ещё.

()
[#]  
shty

djangobook

*** ()
[#] Ответ на: комментарий от val-amart 04.01.2012 9:59:13  
Komintern

омг! что это за укуреное видео?

***** ()
[#] Ответ на: комментарий от Komintern 04.01.2012 10:05:36  
val-amart

это диалог с какой-то конференции

**** ()
[#] Ответ на: комментарий от val-amart 04.01.2012 9:59:13  
vostrik

:) модности это не отменяет

** ()
[#]  
DNA_Seq

Предлагаю начать с руби и рельсов. ИМХО питон больше для десктопных приложений.

*** ()
[#] Ответ на: комментарий от AlexKiriukha 04.01.2012 5:48:39  

Это другое. Уже пробовал.

** ()
[#] Ответ на: комментарий от xpahos 04.01.2012 4:39:49  
beka
>>-----Цитата---->>

Сегодня вот столкнулся с тем, что date time поле из модели при обработке в шаблоне локализует дату, т.к. выводится Январь вместо January, а JS при создании объекта Date месяцы считает от 0, получается что нужно выводить месяц цифрами и в JS добавлять декремент.

<<-----Цитата----<<
  • USE_L10N (False?)
  • DATETIME_FORMAT
    • m Month, 2 digits with leading zeros. '01' to '12'
    • n Month without leading zeros. '1' to '12'
>>-----Цитата---->>

Админка весьма убога, подходит так же для того, чтобы показать табличку

<<-----Цитата----<<

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

* ()
[#]  
>>-----Цитата---->>

питонщики любят джангу

<<-----Цитата----<<

у вас устаревшая информация. Джанга - очередной неповоротливый монстр.
Мако, ЧерриПай, Пирамида etc

*** ()
[#] Ответ на: комментарий от beka 04.01.2012 16:57:48  

> USE_L10N (False?)

нужно отключить для куска шаблона. И локализация и интернационализация разные вещи.

> m Month, 2 digits with leading zeros. '01' to '12' > n Month without leading zeros. '1' to '12'

with leading zeros переведи в гугль транслейте.

setMonth() Sets the month (from 0-11) http://www.w3schools.com/jsref/jsref_obj_date.asp

и теперь сравни.

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

ну как известно можно все что угодно о коленку сломать, главное желание.

** ()
[#] Ответ на: комментарий от xpahos 04.01.2012 19:12:34  
beka

Я знаю, что в JS январь месяц - месяц № 0, просто намекнул, что форматировать дату можно и в джанго.

* ()
[#] Ответ на: комментарий от beka 04.01.2012 19:22:11  

> Я знаю, что в JS январь месяц - месяц № 0, просто намекнул, что форматировать дату можно и в джанго.

так как ее форматировать так, чтобы с нуля начинался вывод?

** ()
[#]  
red_eyed_peguin
>>-----Цитата---->>

Цель - научиться разрабатывать веб-приложения (грубо говоря сайты)

<<-----Цитата----<<

PHP — если проще, JSP — если энтерпрайзнее и хочется познать неведомых бессмысленных конфигов.

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

* ()
[#] Ответ на: комментарий от xpahos 04.01.2012 20:18:54  
beka
var d = new Date('{{obj.created_at|date:"c"}}');
* ()
[#] Ответ на: комментарий от beka 04.01.2012 21:11:00  

так мне месяц нужен, а не вся дата.

** ()
[#] Ответ на: комментарий от xpahos 04.01.2012 22:22:52  
beka

ну а в чем проблема из даты извлечь месяц? просто занудствуешь?

var month = new Date('{{obj.created_at|date:"c"}}').getMonth(); 

уверен, ты это и так знал. Но если хочешь "добавлять декремент" - то дело твое...

* ()
[#] Ответ на: комментарий от beka 04.01.2012 22:42:43  

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

это не меняет того, что оба варианта - костыль.

** ()
[#] Ответ на: комментарий от xpahos 04.01.2012 23:07:10  

казалось бы причем тут джанго

()
[#] Ответ на: комментарий от zz 05.01.2012 0:20:07  

> казалось бы причем тут джанго

смотри выше, если бы была возможность отклюить интернационализацию для части шаблона, то дата была бы вида January 4 2012, но т.к. она не отключается, то получается Январь 4 2012 по которой JS не хочет создавать Date

** ()
[#] Ответ на: комментарий от xpahos 05.01.2012 0:22:38  

ну напиши 4 строчный фильтр, зарелизь на пипи и носи с собой

()