click fraud detection
click fraud detection
Blog Case

Разработка веб приложений с использованием Python и Django

BLOG
CASE
263
0
5/ 5stars
5/5

Язык Python – популярный инструмент среди наших разработчиков. Его применяют для проектирования web-сайтов, десктопных приложений, игр и пр. Наверное, единственное с чем он не сможет справиться – написание операционной системы. В этой сфере конкурентов у языка Си нет. Однако для задач, связанных с администрированием операционных систем на базе Linux, он подходит идеально. Возможно поэтому, Python включен по умолчанию в дистрибутив Ubuntu и активно используется системными администраторами как язык серверных сценариев, а также на нем написана основная масса серверных утилит.

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

Прежде всего, стоит отметить простоту его синтаксиса и краткость. Коренным отличием Питона принято считать оформление блоковых конструкций кода: циклы, условия, содержимое классов, методов и функций. В традиционных языках для выделения таких блоков принято использовать фигурные скобки, что мешает в работе со сложно вложенными структурами, где необходимо определить начало и конец длинного блока. Довольно часто у меня возникало ощущение дискомфорта, когда пропустил или вставил лишнюю фигурную скобку.

 

В Питоне для этого используются отступы (пробелы или табуляция). За счет этого повышается читабельность, а разработчик дисциплинируется в использовании отступов как управляющих структур, а не только как стилистических элементов оформления. Это послужило появлению так называемого «питонического стиля» в программировании, и ряд языков переняли этот принцип.

Код в Питоне не содержит «лишних» символов. Например, знак доллара перед переменными или точки с запятой в конце каждой строки, или использование var в начале объявления переменных. Это радует т.к. текста набирать нужно меньше. Не приходится держать в голове элементы, что не влияют на логику кода, либо могут быть позиционно вычислены самим интерпретатором. После того как я привык к Питону (после PHP), подобные элементы начали вызывать дискомфорт. Зачем они? Ведь оказывается, без них можно было обойтись!

По своей природе Питон довольно демократичен, он позволяет использовать как процедурный так и объектный подход. В его синтаксис встроены многие традиционные и широко используемые паттерны проектирования: декораторы, генераторы, синглтоны и пр.

Присутствуют все концепции ООП, хоть и не отличаются особой изысканностью как в C# или Java.

Импортирование библиотек интуитивно понятно и максимально упрощено. Везде поддерживается принцип минимализма и явности конструкций (без всякой магии с бубном).

Где нужна навигация по файловой системе (при импорте) либо доступ к методам объекта, вы будете использовать только точку, а не слеши, стрелки и пр.

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

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

И конечно есть фреймворки, в том числе для веба. В отличие от PHP их не так много. Самым мощным из фреймворков для web-приложений принято считать Django, есть конечно еще Tornado или Flask. Но они позиционируются как микрофреймворки и не обладают такой обширной инфраструктурой и степенью абстракции.

Основная цель любого фреймворка – обеспечить наиболее высокий уровень абстракции для программиста. Чем меньше кода пишет программист для решения типовых задач, тем круче фреймворк. Он позволяет сосредоточиться исключительно на логике приложения и не думать про то, что «под капотом».

В этом Django переплюнул многих конкурентов из мира PHP. Некоторые фреймфорки PHP подражают архитектурным паттернам Django. Когда я впервые познакомился с этим инструментом, многое показалось очень знакомым, ведь перед этим я использовал PHP-фреймворк Symfony, лежащий в основе Laravel. Я был приятно удивлен, узнав что я изучаю инструмент, положивший основу для многих библиотек на PHP.

В чем заключается абстракция? Например. В сердце любого Django приложения ставится модель (база данных) – набор классов (таблиц) с атрибутами (полями таблиц) и их свойствами. Далее классы связываются между собой добавлением атрибутов внешних ключей, обеспечивая связи «один-ко-многим», «многие-ко-многим» и пр. Имея в наличии такие классы, вы без труда создаете, достаете и изменяете данные в БД, не вникая как строить для нее SQL-запросы.

Конечно, не без интерфейса командной строки, что делает работу еще более продуктивной.

Так же эта модель используется для скаффолдинга CRUD-модулей и админ. Интерфейса. Причем последнй может быть создан буквально двумя строчками кода: первой вы создадите свой админ-класс, унаследованный от админ-класса джанги «из коробки», во второй – «кормите» этому классу ваш класс модели. Все. Вы получите работоспособную админку для таблицы с возможностью добавить, удалить и изменить запись. Такой себе phpMyAdmin, но с возможностью кастомизации.

Еще строка кода – фильтр по полям.

Еще строка – поиск.

Еще – кастомизация полей в списке.

Существует множество тем для админ интерфейса, включая Bootstrap.

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

И конечно, стоит упомянуть обилие плагинов под Django.

К примеру, плагин REST API позволяет построить API, который, используя вашу модель данных, предоставит красочный web-интерфейс для тестирования запросов.

Любая задача может быть решена в минимальные сроки установкой необходимого пакета Python, представляющего собой каталог со скриптами, необходимые части которых (функции, классы, методы или переменные) вы импортируете в свой клиетский код и используете.

И поверте, благодаря ООП код у вас будет на удивление кратким и расширяемым.

Поэтому я считаю, что Python в связке с Django – это достойный выбор для людей, которые ценят свое время и время своих клиентов.

5/5
Проголосовало людей: 1
Домены с истекающим сроком
Дмитрий Жариков
Дмитрий Жариков
Пишем сигнальный сервер Tornado
Итак, это третья и последняя статья нашего цикла, где речь. В предыдущих двух мы рассматривали…
Дмитрий Жариков
Дмитрий Жариков
Кейс: Оптовые поставки товаров
Как мы сделали ребрендинг сайта известной компании TopChinaOpt, которая занимается оптовыми поставками и заказами продукции…
Полина Приходько
Полина Приходько
ПОЛУЧАТЬ ИНТЕРЕСНЫЕ СТАТЬИ
Уже подписались 234 человек
Автор
263
0
Алексей Варламов
Алексей
Варламов
копирайтер
Возможно
Существует много способов вызвать гнев поисковой системы. В этой статье мы рассмотрим самые распространенные ошибки…
Екатерина Шведа
Екатерина Шведа
Как с помощью всего нескольких фраз можно в разы увеличить количество клиентов? Обо всех тонкостях…
Елена Пименова
Елена Пименова
В данном видеоуроке и его текстовой версии показано пошаговый процесс добавления сайта в панель Яндекс.Вебмастера.
Алексей Мищенко
Алексей Мищенко
Давайте начнем
беседу!
КОММЕНТАРИИ0
ОСТАВИТЬ КОММЕНТАРИЙ К СТАТЬЕ
ПОДПИСЫВАЙТЕСЬ НА РАССЫЛКУ АЙТЫЖБЛОГ
ХОТИТЕ ПОЛУЧАТЬ 
ИНТЕРЕСНЫЕ СТАТЬИ?
Уже подписались 234 человек
313
ПОПИСЧИКОВ
ЧИТАТЬ
4295
ПОПИСЧИКОВ
СЛЕДИТЬ
9307
ПОПИСЧИКОВ
СЛЕДИТЬ