Python -- язык с простым синтаксисом и мощными возможностями. В основном заточен под объектно-ориентированое программирование, но с не меньшим успехом можно писать в как в процедурном, так и в функциональном стиле.
- Код: Выделить всё
print "hellow, orld!"
hellow, orld!
Как и в других языках на букву P, присутствует динамическая типизация.
- Код: Выделить всё
a=1
a="ля" * 4
print a
ляляляля
Практически все типы являются объектами. Это даёт возможность писать меньше кода и он будет более читабельным:
- Код: Выделить всё
for line in open('myfile.txt').readlines():
print line
В отличие от Perl, с его "вы можете сделать это несколькими путями", Python придерживается парадигмы "есть только один действительно хороший способ". Поэтому программы, написаные на этом языке очень легко "читать". И, что меня больше всего радует, это то, что там нет $всяких @магических . символов с %мутными ^(правилами -> использования)
- Код: Выделить всё
my_array = "это массив слов".split() # ['это', 'массив', 'слов']
my_array[0] = 'там' # ['там', 'массив', 'слов']
my_array.insert(1, 'есть') # ['там', 'есть', 'массив', 'слов']
Код будет выполнять ровно то, что написано. Ровно так, как задумывалось. И никаких дополнительных возможных трактовок.
Django -- одна из немногих "матёрых" платформ для написания приложений с использованием стиля MVC. Если кто не знает, то это разделение приложения на части, при котором создаётся чёткая связь между данными, логикой и интерфейсом. Для сайтов типа "превед мир! Эта васин сает. тута маи фотки." это конечно излишне, но для более менее серьёзных приложений типа портала, магазина или даже чуть более продвинутого блога, такое разделение уже становится необходимым.
Сколько раз вы пробовали читать сайты написаные на PHP год назад или другим человеком? Сколько раз вы потом махали рукой со словами "нувсёнафик. с нуля проще переписать." ? Сколько раз вы слышали от заказчика "а можно вот эту штучку переместить вот сюда, а там добавить такую вот формочку" ? Сколько раз вы меняя вид календаря обрушивали структуру меню?
С Django всё становится намного проще. Так как компоненты лежат в разных местах, независимые друг от друга, вы можете смело править всё что нужно. Без предварительных поисков по всему коду. А если PHP-код лежит в куче с HTML это вообще туши свет.
В Django имеется три основных части: (в порядке выполнения запроса)
- * непосредственно обработчик поступившего запроса. функция, которая решает что выдавать и откуда.
* интерфейс к базе данных. обработчик берёт из неё данные для отображения страницы. Или вставляет туда данные из форм. Поддерживается автоматическая проверка правильности данных.
* механизм шаблонов. в конце обработчик обычно отправляет полученые данные в подходящий шаблон. сформированая страница отправляется браузеру.
При этом практически для всех распространённых случаев использования сайта уже написаны стандартные обработчики, что позволяет очень сильно сэкономить на строчках кода, отладке, а значит и времени.
В Django есть ещё два важных аспекта это автоматическая страница администрирования и кэширование.
Как только вы описали модель данных и создали соотв-щие таблицы (всё автоматизировано), вы можете зайти на админку и начать вводить данные (в это время, коллега может продолжать заниматься структурой сайта).
Если у вашего сайта много посетителей, огромная база или слабенький комп, то вы можете включить встроеное кэширование, что сильно сокращает нагрузку и позволяет даже тяжёлым сайтам выживать даже при попадании на slashdot.org или dirty.ru
Ну и много ещё разных маленьких вкусностей и приятностей, которые уже настолько привычны, что уже и не упомнишь..