Статьи

Python в Интернете: почему фреймворки, такие как Django, так популярны

Созданный в начале 1990-х годов Гвидо ван Россумом, Python с годами приобрел популярность. В 2016 году Python является 4-м по популярности языком после Java, C и C ++. Python — это язык программирования общего назначения, и его можно использовать в самых разных областях. По словам Кеннета Лав из Treehouse

Когда мне нужно создать веб-приложение, я берусь за Python. Когда мне нужно автоматизировать небольшую задачу в моей системе, я берусь за Python. Когда я хочу найти наиболее распространенные цвета в изображении, я берусь за Python.

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

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

Что делает Python языком перехода для все большего числа разработчиков, когда речь заходит о веб-разработке в наши дни? Мы постараемся найти ответ на этот вопрос в этом посте.

Зачем использовать Python?

Python для начинающих

Основной причиной популярности Python является элегантность кода, в частности, краткость и удобочитаемость. Например, давайте посмотрим, как Python и Java складываются друг с другом с точки зрения обращения числа:

Ява против Питона

Программы для изменения числа в Java (слева) и Python 2.7.x (справа)

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

Как говорит соучредитель Quora Адам Д’Анджело о выборе Python для разработки Quora —

До сих пор мы были очень довольны выбором… все ранние сотрудники, которые раньше работали с другими языками, были рады переходу на Python, особенно те, которые пришли из PHP.

На самом деле, webcomic xkcd придумал мультфильм о том, как легко добиться успеха в Python!

Python webcomic от xkcd. Источник: xkcd.com

Кроме того, Python имеет простые в использовании средства отладки. Хотя существует несколько отладчиков и инструментов IDE, по умолчанию используется pdb , интерактивный инструмент отладки, который позволяет разработчику останавливать выполнение программы на полпути и оценивать среду, чтобы лучше понимать ошибки времени выполнения.

Python на удаленном сервере

Управление пакетами (или модулями, как они называются) в Python тоже очень просто. Используйте установщик пакетов, например pip или easy_install, и его можно использовать для установки и удаления пакетов.

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

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

Веб-разработка с использованием Python Web Frameworks

Веб-возможности Python не встроены в его основные функции, и поэтому нам нужна помощь модулей для обеспечения веб-разработки на Python. Если вы хотите разрабатывать базовые приложения — например, страницу для проверки работоспособности сервера — вы можете использовать модуль cgi .

С ростом требований необходимо перейти к среде Python, такой как Django или Flask, чтобы иметь возможность разрабатывать сложные веб-приложения.

Большинство из этих платформ должны быть связаны с веб-сервером, таким как Apache, для производственных целей, и здесь присутствует небольшое узкое место. По сравнению с PHP, простота развертывания на удаленном веб-сервере немного сложна, если вы делаете это впервые в своей жизни (хотя мы это уже рассмотрели ). Однако время, которое вы потратите, определенно принесет плоды позже.

Популярные сервисы, такие как Instagram , Reddit , Quora и Disqus, были разработаны с использованием Python.

Django — самый популярный Python Web Framework

Естественно возникает вопрос: зачем использовать Python для веб-разработки? Мой ответ, во-первых, перестать думать об этом как об использовании «Python» для веб-разработки. Такие фреймворки, как Django и Flask, делают веб-разработку на Python такой многофункциональной и мощной. Например, вот несколько вещей, которые Django делает действительно хорошо по сравнению с любой другой веб-инфраструктурой:

  • Кривая легкого обучения . Джанго, как и Python, прост в освоении. Вам просто нужно пройти этот пошаговый учебник на веб-сайте Django, который отлично объясняет основные функции Django. С другой стороны, изучение чего-то вроде Ruby on Rails может занять больше времени.
  • Создание таблиц SQL автоматически . Джанго сделает это за вас, как только вы определите структуру. (Примечание: SQLAlchemy делает то же самое, и в Hacker News есть жаркие споры по этому поводу , если вам интересно.)
  • Генерация форм . После того как вы создали класс Form в Django и связали его с моделью, генератор форм в Django позаботится о рендеринге форм, проверке данных и сохранении данных.
  • Интерфейс администратора . Как и таблицы SQL, после того, как вы определились со структурой, Django создает интерфейс администратора, который позволяет вам управлять базой данных. (Это как PhpMyAdmin, встроенный в Django.)
  • Джанго Шелл . Оболочка Python в среде проекта Django — это то, что обеспечивает оболочка Django. Эта функция полезна при отладке, которая в PHP относительно сложнее.

Если этого недостаточно, в Python происходит передовая разработка. В Python есть два замечательных сервиса: Tornado (для асинхронных задач) и Celery (для планирования заданий). Вы можете посмотреть на них, если они удовлетворяют вашим потребностям.

Джанго Хостинг

Самым большим препятствием для начала работы над Django является наличие веб-хостов. Очевидно, что из-за популярности PHP число хостов велико, а хостинг относительно дешев (но не обязательно стоит денег, так как дешевый хостинг часто используется совместно). Однако есть такие хосты, как AWS и Heroku, которые позволяют вам бесплатно размещать приложения Django (в определенных пределах). Для общих хостов по карманной цене вы можете выбрать хост, такой как WebFaction .

Самые популярные на сегодняшний день сервисы облачного хостинга, такие как AWS , Digital Ocean и Microsoft Azure, предоставляют корневой доступ к серверу, что позволяет вручную настраивать среду. В действительности, Digital Ocean разработала развертывание Django одним щелчком мыши . Хостинг Django может быть не таким популярным, как аналоги PHP, но доступны надежные варианты на разных уровнях цен .

Последние мысли

Цель этой статьи не в том, чтобы сказать вам, что Python является решением любой проблемы! Он призван выделить параметры Python и его веб-фреймворков, которые облегчают жизнь веб-разработчикам.

Вы пробовали Python и его веб-фреймворки раньше? Дайте нам знать в комментариях ниже.