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

Wezom
Wezom
Команда IT-компании
5.0
02.04.2019
9942
0

Язык 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.0
Проголосовало: 3
Давайте обсудим Ваш проект
Нажимая на кнопку “Отправить”, вы даете согласие на обработку личных данных. Подробнее
Комментарии
(0)
Будьте первыми, кто оставит комментарий
wezom logo
Остались вопросы?
Оставьте ваши контактные данные. Наш менеджер свяжется и проконсультирует вас.
Подписывайтесь на рассылку Айтыжблог
blog subscriber decor image
Хотите получать интересные статьи?
Нажимая на кнопку “Отправить”, вы даете согласие на обработку личных данных. Подробнее
Следите за нами в социальных сетях
Этот сайт использует cookie-файлы для более комфортной работы пользователя. Продолжая просматривать сайт, Вы соглашаетесь на использование cookie.