Как сделать приложение на python

Обновлено: 06.07.2024

Мобильная веб-разработка на Python становится все более популярной. И хотя Python изначально не создавался для создания ПО для смартфонов и планшетов, благодаря Kivy это стало возможным. Сегодня мы продолжаем рассматривать особенности использования этого фреймворка. В частности, поговорим о том, что такое язык дизайна KV, как создавать приложение Kivy, генерировать установочный apk-пакет, как создавать программу для iOS, используя Python.

Использование языка дизайна KV

В поставку Kivy входит язык KV, с помощью которого создается дизайн приложений. С помощью этого языка можно отдельно работать с дизайном, не затрагивая логику приложения. В него входит поддержка принципа разделения ответственности, и Kivy является частью архитектурного паттерна «Модель-Представление-Контроллер).

Давайте используем язык KV, чтобы внести некоторые изменения в предыдущий пример.

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

В этом примере в качестве имени класса выступает ButtonApp . Следовательно, Kivy будет искать button.kv . Если такой файл есть в наличии, а его форматирование было выполнено правильно, то Kivy его будет использовать при загрузке UI.

Давайте попробуем создать такой файл и добавить следующий код:

Что делает каждая из этих строк?

  • Выполняет действия, аналогичные вызову Button в коде приложения на Python. Задача – осмотреть инициализированный объект для определения кнопки.
  1. Устанавливает значение text для кнопки.
  2. Устанавливает ширину и высоту кнопки. Для этого используется size_hint .
  3. Используя pos_hint устанавливает позицию кнопки.
  4. Устанавливает событие при нажатии on_press . Чтобы передать Kivy место обработчика событий, необходимо использовать app.on_press_button() . Здесь Kivy будет осуществлять поиск соответствующего метода в классе Application .

Разработчик может установить все виджеты и лейауты внутри одного либо нескольких файлов KV. Этот язык также умеет импортировать модули Python. При этом создаются динамические классы.

И это далеко не все, что он умеет. Более подробную информацию можно получить в официальной документации Kivy.

Теперь мы можем создать реальное приложение.

Как создать приложение Kivy?

Любой навык удобнее всего получать, используя знания на практике. Поэтому давайте попробуем сделать калькулятор, который будет поддерживать такие операции:

  1. Сложение.
  2. Вычитание.
  3. Умножение.
  4. Деление.

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

В результате, калькулятор должен выглядеть так:

Теперь, когда мы имеем целевой пользовательский интерфейс, мы можем приступить к созданию кода.

Принцип работы калькулятора следующий:

После выполнения всех этих действий создается обработчик .on_button_press() . Код будет таким.

Почти каждый виджет программы ассоциирован с методом .on_button_press , поскольку подавляющее число виджетов в нашем приложении – это кнопки.

И, наконец, мы добавляем функцию .on_solution() .

Здесь функция получает текстовые данные из solution , после чего задействуется функция eval() для вычислений. Если пользователем создается формула типа 1+2, то eval возвращает результат. В конце результат устанавливается в качестве нового значения виджета solution .

В некоторых случаях использование eval() не рекомендуется из-за запуска произвольного кода. Нередко разработчики Python стараются его не использовать как раз по такой причине. При этом, поскольку мы используем лишь целые числа, операторы и точку в качестве входных данных, то в этом примере eval() является довольно безопасной функцией.

Kivy - Создание мобильных приложений на Python (Часть 2)

После того, как мы запустим приведенный выше код, появится такое окно с приложением.

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

Как создать apk-файл?

После того, как мы закончили создавать код программы Android, необходимо упаковать ее в apk-файл.

Сперва используем pip , чтобы инсталлировать пакет buildozer .

$ pip install buildozer

После этого нам нужно создать новую папку, а потом открыть ее в терминале. Затем дать такую инструкцию.

$ buildozer init

Затем создается файл buldozer.spec , использующийся для конфигурации сборки. Например, первые две строки файла спецификации можно редактировать так.

Фактически приложение уже готово к сборке, но необходимо установить зависимости. После того, как вы это сделаете, скопируйте программу в новую папку и переместите в main.py .

$ buildozer -v android debug

Kivy - Создание мобильных приложений на Python (Часть 2)

Через 15-20 минут будет создан файл, который переносим в смартфон и запускаем. После установки программы запускаем ее и получаем следующий результат.

Как создать приложение для iOS

iOS – вторая по популярности операционная система. Поэтому многие разработчики хотели бы создать мобильное приложение для нее.

Чтобы собрать приложение для iOS, необходимо воспользоваться компьютером под управлением OS X: MacBook, iMac.

Перед тем, как упаковать программу для iOS, выполните следующие команды.

После выполнения этих команд необходимо дать еще такие инструкции.

Если вам отображается ошибка, где говорится, что iphonesimulator не удалось найти, тогда попробуйте найти решение проблемы на StackOverflow .

Теперь вернитесь назад и запустите команду повторно.

После того, как эти команды будут выполнены, можно создать проект Xcode с использованием скрипта toolchain . Переименуйте приложение в main.py , а потом выполните следующую команду.

./toolchain.py create

Далее остается этот проект открыть в среде разработки и компилировать готовое приложение.

Проект по машинному обучению никогда не будет по-настоящему завершен, пока мы не сможем продемонстрировать его результаты. В прошлом хорошо сделанной визуализации или небольшой презентации в Power Point было достаточно для демонстрации проекта, но сейчас, с появлением инструментов для создания дашбордов вроде RShiny или Dash, хороший data science-специалист должен иметь некоторое представление о веб-фреймворках.

Но проблема в том, что веб-фреймворки достаточно сложны в изучении. Я до сих пор путаюсь по всех этих HTML, CSS и Javascript, и даже что-то, что выглядит простым в исполнении, начинает работать только после большого количества проб и ошибок. Не говоря уж о том, что существует огромное количество способов сделать одно и то же, и это сбивает с толку людей, для которых веб-разработка является второстепенным навыком.

Так что же, мы обречены на изучение веб-фреймворков? Или на звонки нашим друзьям-разработчикам посреди ночи с глупыми вопросами?

И тут нам на выручку спешит Streamlit с обещанием позволить нам создавать веб-приложения, используя только Python. Следуя философии Python – “просто – лучше, чем сложно”, Streamlit предельно упрощает создание приложений.

В этой статье я хочу показать как создавать приложения для демонстрации data science-проектов с помощью Streamlit. Чтобы лучше понять архитектуру Streamlit, а также идеи, которые привели к его созданию, прочитайте отличную статью одного из разработчиков и основателей Адриана Трёля.

Полный курс по Data Science

Освойте самую востребованную профессию 2021 года за 12 месяцев. Дополнительная скидка 5% по промокоду BLOG.

Установка

Установить Streamlit очень просто, делается это с помощью одной команды:

Чтобы проверить успешно ли прошла установка, можно использовать

После этой команды на экране должен появиться следующий текст:

Теперь вы можете перейти по локальному URL localhost:8501 в вашем браузере, чтобы увидеть Streamlit в действии. Разработчики предоставили несколько демо, которые будет интересно изучить. Не торопитесь и постарайтесь понять широкие возможности приложения, прежде чем вернуться к этой статье.

Streamlit Hello World

Streamlit стремится сделать разработку приложений проще с использованием исключительно Python.

Давайте попробуем написать простое приложение, чтобы увидеть получилось ли это у них.

Я начну с простого приложения, которое мы назовем Streamlit Hello World. Просто скопируйте текст ниже в файл с названием helloworld.py:

И используйте в терминале команду:

Вуаля, вы должны увидеть простое приложение в своем браузере по адресу localhost:8501, которое позволит вам двигать слайдер для выбора числа и видеть результат возведения этого числа в квадрат.

Это было достаточно просто. В приложении выше мы использовали две функции из Streamlit:

  • Виджет st.slider, который мы можем сдвигать, чтобы изменять вывод веб-приложения
  • И универсальную команду st.write. Я в восторге от того, как она может писать все что угодно, включая графики, датафреймы и обыкновенный текст. Но мы еще поговорим об этом позже.

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

Виджеты Streamlit

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

1. Слайдер

Мы уже видели st.slider в действии. Он может быть использован с указанием минимального и максимального значения, а также шага для получения входящих значений в заданном диапазоне.

2. Ввод текста

st.text_input — это самый простой способ получить на вход текст от пользователя — будь это какой-то URL или текст для анализа его тональности. Нужно только передать функции название текстового окна.

Так будет выглядеть получившееся приложение:

Совет: Вы можете просто изменить файл helloworld.py и обновить браузер. Я обычно работаю таким образом: открываю и изменяю файл в Sublime Text и наблюдаю за изменениями в браузере расположенном в рядом с окном редактора.

3. Чекбокс

В этом приложении чекбокс используется для переключения условного оператора:

4. Выпадающий список

Мы можем использовать st.selectbox для выбора из списка. Обычно эта функция используется для создания выпадающего списка, который позволяет выбрать значение.

5. Выбор нескольких значений

Мы также можем выбрать несколько значений из выпадающего списка. Для этого можно использовать st.multiselect, которая сохранит несколько выбранных значений в виде списка в переменную options:

Пошаговое создание простого приложения

Вот мы и разобрали самые важные виджеты. Теперь давайте создадим простое приложение с использованием нескольких из них.

Начнем с простого: попробуем визуализировать данные футбольных матчей с использованием Streamlit. Это достаточно легко сделать с помощью вышеописанных виджетов:

Получившееся приложение будет выглядеть вот так:

Это было легко. Но результат выглядит достаточно просто, может стоит добавить графиков?

Streamlit на данный момент поддерживает многие библиотеки для построения графиков. Среди них Plotly, Bokeh, Matplotlib, Altair и Vega charts. Кроме того, работает и Plotly Express, хотя это и не указано в документации. Помимо внешних библиотек, в Streamlit встроены и свои нативные типы графиков, например st.line_chart и st.area_chart.

Сейчас мы будем работать с plotly_express. Вот код для нашего простого приложения. Мы используем всего 4 вызова Streamlit, все остальное — это простой Python:

Возможные улучшения

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

1. Кэширование

В нашем базовом приложении мы читаем датафрейм pandas снова всякий раз, когда значение изменяется. И хотя это работает с маленькими базами данных как та, которую мы используем сейчас, но это не сработает с big data или если нам понадобится проводить большое количество манипуляций с данными. Давайте используем кэширование через функцию st.cache:

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

Когда мы помечаем функцию кэширующим декоратором, всякий раз, когда эта функция вызывается, Streamlit будет проверять входные параметры функции.

Если Streamlit видит эти параметры впервые, он запустит функцию и сохранит результат в локальном кэше.

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

2. Сайдбар

В зависимости от ваших предпочтений, вы можете сделать что-то похожее на Rshiny dashboards и переместить свои виджеты в боковую панель, чтобы придать приложению более аккуратный вид. Для этого просто добавьте st.sidebar в код вашего виджета:

3. Markdown

Мне нравится использовать Markdown. Мне он кажется менее громоздким, чем HTML, и более подходящим для работы в data science. Можем ли мы использовать Markdown в Streamlit-приложении?

И ответ: да, можем. Есть несколько способов это осуществить. На мой взгляд, лучший вариант — это использовать Magic commands. Эти команды позволят вам использовать Markdown точно так же как и простое комментирование. Но вы также можете воспользоваться командой st.markdown.

Финальное демо приложения

Заключение

Streamlit сделал процесс создания приложений значительно проще, и я однозначно рекомендую его к использования.

В этой статье я показал очень простое веб-приложение, но на деле возможности использования безграничны. В качестве примера хочу привести GAN-генератор лиц с сайта Streamlit. Это приложение работает на основе тех же идей виджетов и кэширования.

Мне нравятся цветовая гамма и стили, которые разработчики Streamlit используют по умолчанию, плюс мне кажется, Streamlit удобнее в использовании, чем Dash, который я использовал до этого для создания демо. К тому же Streamlit позволяет добавлять аудио и видео в свои приложения.

Отдельный бонус — это то, что Streamlit является бесплатным open source решением, которое работает прямо из коробки. В прошлом мне приходилось обращаться к друзьям-разработчикам для любого изменения в демо или презентации; теперь все это я могу относительно просто проделать сам.

Я не знаю, будут ли Streamlit-приложения хорошо работать в производственной среде, но они отлично подходят для proof of concept и демо. Я планирую продолжить работать со Streamlit, и, учитывая простоту использования и возможности, которые он предоставляет, я думаю, вам тоже стоит об этом задуматься.Вы можете найти код финальной версии приложения здесь.

Я начинаю перевод серии уроков PyQt5 от zetcode.

PyQt5 - это набор Python библиотек для создания графического интерфейса на базе платформы Qt5 от компании Digia.

Он доступен для Python 2.x и 3.x. Этот учебник использует Python 3.

Библиотека Qt является одной из самых мощных библиотек GUI (графического интерфейса пользователя).

Установить PyQt5 на Windows можно с официального сайта библиотеки.

Установить PyQt5 на linux-системы можно с помощью любого менеджера пакетов:

PyQt5 реализован в виде набора python-модулей. Эта библиотека имеет более 620 классов и 6000 функций и методов.

Это мультиплатформенная библиотека, которая работает на всех основных операционных системах, в том числе Unix, Windows и Mac OS.

Простой пример

Это простой пример, показывающий небольшое окно. Тем не менее, мы можем многое сделать с этим окном. Мы можем изменить его размер, развернуть его или свернуть. Это требует написания значительного объёма кода. Однако кто-то уже запрограммировал эту функциональность до нас. Поскольку эта функциональность повторяется в большинстве приложений, нет необходимости писать её снова.

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

Приведенный выше код показывает небольшое окно на экране.

Здесь мы делаем необходимые импорты. Основные виджеты расположены в PyQt5.QtWidgets.

Каждое приложение PyQt5 должно создать объект приложения (экземпляр QApplication). Параметр sys.argv это список аргументов командной строки. Скрипты Python можно запускать из командной строки. Это способ, которым мы можем контролировать запуск наших сценариев.

Виджет QWidget это базовый класс для всех объектов интерфейса пользователя в PyQt5. Мы предоставляем конструктор по умолчанию для QWidget. Конструктор по умолчанию не имеет родителя. Виджет без родителей называется окно.

Метод resize() изменяет размеры виджета. Он стал 250 пикселей в ширину и 150 в высоту.

Метод move() двигает виджет на экране на координату x=300, y=300.

Здесь мы задаём заголовок нашего окна.

Метод show() отображает виджет на экране. Виджет сначала создаётся в памяти, и только потом (с помощью метода show) показывается на экране.

Наконец, мы попадаем в основной цикл приложения. Обработка событий начинается с этой точки. Основной цикл получает события от оконной системы и распределяет их по виджетам приложения. Основной цикл заканчивается, если мы вызываем метод exit() или главный виджет уничтожен. Метод sys.exit() гарантирует чистый выход. Вы будете проинформированы, как завершилось приложение.

Метод exec_ () имеет подчеркивание. Это происходит потому, что exec является ключевым словом в python 2.

Значок приложения

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

Не забудьте также скачать какую-нибудь иконку :)

Предыдущий пример был написан в процедурном стиле. Язык программирования Python поддерживает как процедурный, так и объектно-ориентированный стили программирования. Программирование в PyQt5 означает программирование в ООП.

Три важные вещи в объектно-ориентированном программировании это классы, данные и методы. Здесь мы создаем новый класс Example. Класс Example наследуется от класса QWidget. Это означает, что мы вызываем два конструктора: первый для класса Example и второй для родительского класса. Функция super() возвращает родительский объект Example с классом, и мы вызываем его конструктор.

Создание GUI делегируется методу initUI().

Все три метода были унаследованы от класса QWidget.

Метод setGeometry() делает две вещи: помещает окно на экране и устанавливает его размер. Первые два параметра х и у - это позиция окна. Третий - ширина, и четвертый - высота окна. На самом деле, он сочетает в себе методы resize() и move() в одном методе.

Последний метод устанавливает иконку приложения. Чтобы сделать это, мы создали объект QIcon. QIcon получает путь к нашей иконке для отображения.

Создаются объекты application и Example. Запускается основной цикл.

Подсказки

Мы можем предоставить всплывающую подсказку для любого из виджетов.

В этом примере мы покажем подсказку для двух виджетов PyQt5.

Этот статический метод устанавливает шрифт, используемый для отображения подсказки. Мы используем шрифт 10px SansSerif.

Чтобы создать всплывающую подсказку, мы вызываем метод setToolTip(). Мы можем использовать форматирование текста.

Мы создаем виджет кнопки и устанавливаем подсказку для него.

Меняем размер кнопки и перемещаем относительно окна. Метод sizeHint() дает рекомендуемый размер для кнопки.

Закрытие окна

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

В этом примере, мы создаем кнопку выхода. После нажатия на кнопку, приложение завершается.

Мы создаем кнопку. Кнопка является экземпляром класса QPushButton. Первый параметр конструктора - название кнопки. Вторым параметром является родительский виджет. Родительский виджет является виджетом Example, который наследуется от QWidget.

Система обработки событий в PyQt5 построена на механизме сигналов и слотов. Если мы нажмем на кнопку, вызовется сигнал "нажатие". Слот может быть слот Qt или любая Python функция.

QCoreApplication содержит главный цикл обработки; он обрабатывает и диспетчеризирует все события. Метод instance() дает нам его текущий экземпляр.

Обратите внимание, что QCoreApplication создается с QApplication. Сигнал "нажатие" подключен к методу quit(), который завершает приложение. Коммуникация осуществляется между двумя объектами: отправителя и приемника. Отправитель кнопка, приемник - объект приложения.

Message Box

Если мы закрываем QWidget, генерируется QCloseEvent. Чтобы изменить поведение виджета, нам нужно переопределить обработчик события closeEvent().

Здесь мы проверяем возвращаемое значение. Если мы нажмем на кнопку Yes, мы принимаем событие, которое приводит к закрытию виджета и приложения. В противном случае мы будем игнорировать событие закрытия.

Центрирование окна на экране

Следующий скрипт показывает, как мы можем центрировать окно на рабочем столе.

Класс QtWidgets.QDesktopWidget предоставляет информацию о компьютере пользователя, в том числе о размерах экрана.

Код, который будет центрировать окно, находится в нами созданном методе center().

Мы получаем прямоугольник, определяющий геометрию главного окна. Это включает в себя любые рамки окна.

Мы получаем разрешение экрана нашего монитора. И с этим разрешением, мы получаем центральную точку.

Наш прямоугольник уже имеет ширину и высоту. Теперь мы установили центр прямоугольника в центре экрана. Размер прямоугольника не изменяется.

Мы двигаем верхний левый угол окна приложения в верхний левый угол прямоугольника qr, таким образом, центрируя окно на нашем экране.

мобильная разработка на Python

Как насчёт использования Python для мобильной разработки? Исторически Python не был лучшим инструментом для написания мобильных GUI приложений.

Фактически, о разработке на Python под iOS и Android не могло быть и речи. Однако благодаря некоторым изменениям, произошедшим в последние годы, перспектива использования Python для написания мобильных приложений значительно улучшилась.

Мобильная разработка на Python постепенно прогрессирует. Результатом этого прогресса являются несколько современных инструментов, которые мы рассмотрим в этой статье. Два фреймворка, которые следует выделить — это Kivy и BeeWare.

Kivy — это библиотека Python, имеющая открытый код, предназначенная для разработки кроссплатформенных GUI приложений. Она позволяет писать вам приложения с графическим интерфейсом на чистом Python, которые работают на основных платформах (Windows, Linux, MacOS, Android, IOS).

Теперь каждый раз, когда я слышу о новом GUI toolkit, мне всегда интересно насколько "родным" для меня это будет — я считаю, что GUI приложений должен опираться на сильные стороны платформы, на которой он работает.

Например, когда я использую свой iPhone, я хочу видеть именно приложение, разработанное специально под IOS. Иногда раздражает использование приложения, которое было разработано с шаблонами пользовательского интерфейса из другой платформы.

В Kivy встроен настраиваемый набор инструментов пользовательского интерфейса, который предоставляет собственные кнопки, формы ввода текста, radiobutton’ы и т. д. Это означает, что эти виджеты не отображаются с помощью элементов управления пользовательского интерфейса собственной платформы. У этого есть свои плюсы и минусы.

С одной стороны, это гарантирует нормальное функционирование приложения на различных платформах. С другой стороны, это также означает то, что ваше приложение под Android не будет выглядеть как приложение для Android. Однако всё зависит от типа приложения, которое вы разрабатываете. Например, для большинства игр нативность пользовательского интерфейса не очень важна.

То же самое относится к определенным видам приложений, таких как графические MIDI-контроллеры для создания музыки. Но для других типов приложений это имеет огромное влияние на удобство использования.

Итак, если вы можете работать с не нативным набором инструментов пользовательского интерфейса в своих приложениях, Kivy — отличный выбор. Этот фреймворк позволяет вам писать мобильные приложения, используя свои навыки программирования на Python, без необходимости изучать другой язык для определённой платформы, например, Swift от Apple.

Второй Python GUI и фреймворк для разработки под мобильные устройства - BeeWare. Он предлагает набор инструментов, который вы можете использовать для написания мобильных и десктопных приложений с использованием Python.

Ключевое различие между Kivy и BeeWare в том, что BeeWare использует нативный набор инструментов UI для определённой платформы. Kivy использует кастомный набор инструментов UI, который задействует те же элементы управления на всех платформах.

В BeeWare UI контроллерами будут кнопки, чекбоксы и другие форменные элементы, предоставляемые системой, под которую разработано приложение. Это означает, что вы можете создавать приложения, которые выглядят и чувствуются стопроцентно нативными для каждой мобильной и десктоп платформы.

Звучит неплохо, правда?

Единственным недостатком является то, что проект BeeWare всё ещё находится в разработке, возглавляемой Pythonista Russel Keith-Magee. Как и с любым фреймворком, который ещё не успел развиться, вы работаете в качестве разработчика из-за (потенциально частых) изменений API, ошибок и отсутствия необходимых функций.

Если перед вами встанет выбор между этими двумя фреймворками, то скажу сразу: вам стоит попробовать как Kivy, так и BeeWare. Что касается “зрелости”, то Kivy, на мой взгляд, является более “зрелым” фреймворком.

В тех случаях, когда речь идёт о создании десктопных приложений на чистом Python, я думаю, что BeeWare в конечном итоге одержит верх из-за нативных UI контроллеров.

Но, честно говоря, если вы думаете о создании крупного мобильного приложения сегодня, то не имеет смысла писать его на Python. Если вы хотите получить лучший результат и использовать самые современные функции систем, лучше всего вам подойдёт Java (Android) и Swift (IOS).

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

Лично я бы хотел иметь возможность писать кроссплатформенные приложения на Python просто потому, что Python – приятный язык для работы.

Итак, если вы ищете хороший фреймворк с открытым исходным кодом, рассмотрите Kivy и BeeWare.


За последние несколько лет популярность Python резко возросла, и он даже превзошел Java. С развитием машинного обучения, анализа данных и веб-приложений многие разработчики стали чаще использовать данный язык программирования, так как он обладает множеством полезных библиотек, простым синтаксисом и мобильностью. Без сомнения, сейчас наиболее подходящее время, чтобы научиться работать с Python.

Итак, в данной статье мы ответим на следующие вопросы:

  • Веб-разработка — что это?
  • Почему Python подходит для веб-разработки?
  • Веб-фреймворки Python
  • Библиотеки Python
  • Дорожная карта для веб-разработки с использованием Python
  • Как создать первое приложение в Python
  • Заключение

Скорее всего, новички зададутся вопросом, что же такое веб-разработка. Однако сложно определить точный термин, так как веб-разработка в широком смысле подразумевает создание и обслуживание сайтов. Как правило, веб-разработка включает все аспекты, которые связаны с пользователем: интерфейс, серверная часть и бизнес-логика.


Преимущества разработки веб-приложений в Python:

  • Простое обучение: Python — самый популярный язык программирования для новичков. Он опирается на общие выражения и пробелы, что позволяет писать значительно меньше кода по сравнению с Java или C++. К тому же, он обладает более низким барьером входа, так как напоминает повседневный язык. Поэтому вы с легкостью сможете понять код. Однако это не значит, что изучение Python будет легким в начале. Программирование — сложный процесс, но он научит вас быстро схватывать идеи.
  • Обширная экосистема и библиотеки: Python предлагает большой спектр библиотечных инструментов и пакетов услуг. Таким образом, вы получите доступ к предварительно написанному коду с ускоренным временем на разработку приложений. Например, вы сможете воспользоваться Numpy и Pandas для математического анализа, Pygal для построения графиков и SLQALchemy для вложенных запросов. Python также обладает отличными веб-фреймворками — например, Django и Flask. Ниже мы расскажем о них более подробно.
  • Быстрое прототипирование: по сравнению с другими языками программирования Python тратит меньше времени, поэтому вы сможете реализовать свои идеи намного быстрее. Более того, вы получите обратную связь и легко выполните итерации. Благодаря небольшому времени на разработку Python особенно подходит для стартапов. Поэтому они могут выйти на рынок значительно быстрее и получить конкурентное преимущество.
  • Широкое распространение: Python — один из самых популярных языков программирования, поэтому он часто обновляется новыми функциями и библиотеками. Также Python обладает отличной документацией и поддержкой сообщества, что поможет начинающим разработчикам реализовать свои проекты.

Другие языки программирования для веб-разработки:

  • Javascript широко известен в веб-разработке благодаря своей пригодности для бэкенда и фронтенда. Такие фреймворки JS, как React.js и Vue.j, подходят для разработки фронтенда, в то время как Express.js чаще используется для бэкенда.
  • Java также достаточно популярный язык, который часто используют многие компании. Особой популярностью пользуется Java Spring, так как он обладает коллекцией библиотек и конфигураций. Благодаря такому набору возможностей вы сможете создавать серверные среды и развертывать приложения.
  • Ruby часто применяется для серверных технологий, но по сравнению с Javascript и Python считается более устарелым инструментом. Язык предполагает, что во время написания кода вам придется соблюдать определенную структуру.
  • PHP также является хорошо известным языком в веб-разработке, хотя за последние несколько лет его популярность снизилась. Он предлагает множество фреймворков и интеграций, но многие разработчики считают, что его дизайн недостаточно проработан, что может привести к написанию плохого кода.


Что такое фреймворки и почему они так важны? Веб-фреймворк — это набор пакетов и модулей, состоящих из предварительно написанного стандартизированного кода. Таким образом, код обеспечивает разработку веб-приложений, делая этот процесс быстрее и проще, а программы более надежными и масштабируемыми. Другими словами, фреймворки уже обладают встроенными компонентами, которые упрощают вашу работу над проектом.

Какие веб-фреймворки Python наиболее популярны?

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

Фреймворк включает комплексный пакет, в котором вы получите панель управления, интерфейс базы данных и структуру каталога после создания приложения. Кроме того, он включает большое количество функций, поэтому вам не придется добавлять отдельные библиотеки. Аутентификация пользователей, механизм шаблонов, маршрутизация, миграция схемы базы данных и т.д. — все это примеры возможностей, которые предлагает фреймворк.

Django отличается гибкостью. Он позволяет работать как с минимально жизнеспособным продуктами, так и с более развитыми компаниями. Instagram, Dropbox, Pinterest и Spotify — все эти компании также используют Django.

Flask считается микрофреймворком, который представляет минималистичный веб-фреймворк. Но по сравнению с Django он не обладает такими функциями, как механизм веб-шаблонов, авторизация учетной записи и аутентификация.

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

Другие известные фреймворки

Возможно, вы зададите вопрос — какой же фреймворк стоит выбрать? Но мы не сможем дать вам однозначный ответ. Для начала, оцените свой уровень веб-разработчика. Если вы обладаете большим опытом, то стоит отдать предпочтение продвинутым программам. Однако, если вы начинающий разработчик, то попробуйте использовать фреймворк со встроенной технической поддержкой, например Django.

Ниже представлено несколько полезных библиотек Python для веб-разработки:

Шаг 1:HTML + CSS

Вы можете также изучить такие CSS-фреймворки, как Materialize или Bootstrap. Они значительно ускорят вашу работу.

Шаг 2: Javascript

Следующий шаг, который необходимо сделать — это изучить Vanilla Javascript. Вам стоит ознакомиться с такими базовыми концепциями, как типы данных, переменные, общие соглашения, работа со строками, арифметика, управляющие операторы, циклы и т.д. Знание этих основ упростит применение Javascript к коду на стороне клиента.

Шаг 3: DOM & jQuery

Затем вам стоит научиться управлять еще одной библиотекой Javascript — jQuery. С ее помощью процесс манипулирования DOM станет гораздо проще. Теперь у вас есть представление о том, как создать динамические страницы.

Фронтенд-фреймворк

Для создания функционального веб-приложения с полным стеком рекомендуется изучать фронтенд-фреймворк. Такой навык часто является обязательным требованием при найме front-end или full-stack разработчика.

Шаг 4: Python

Теперь перейдем к бэкенду. Прежде чем приступить к манипуляциям с DOM, необходимо знать основы Python и Javascript. Эти базовые знания подготовят вас к Django. Изучение Python не вызывает трудностей, так как многие концепции напоминают Javascript.

Шаг 5: База данных Django +

С помощью Django вы сможете настроить бэкенд-среду и сформировать бизнес-логику. Вам также стоит узнать о том, как создать запросы, изучить базу данных SQLite и CRUD- функцию. В таком случае, вы сможете разработать приложение с полным стеком.

Установка Flask

Первое, что необходимо сделать — это установить Flask. В зависимости от вашей версии Python, вам придется использовать pip или pip3.

pip install flask

Приложение Flask

Затем, создайте файл под названием hello.py со следующим кодом:

  • Строка 1 импортирует Flask
  • Строка 2 создает экземпляр Flask с переменной app , используя атрибутом __name__
  • Строка 4 задает направление / для страницы индекса или страницы по умолчанию. Когда пользователь переходит на locahost:5000/ , вы сможете настроить определенный код для запуска
  • Строка 5 создает функцию hello
  • Строка 6 возвращает пользователю строку Hello World!
  • Строка 8 тестирует пригодность сценария
  • Строка 9 запускает приложение из переменной app , чтобы пользователь смог посетить веб-приложение через localhost

Теперь вы имеете представление о том, как использовать Python для веб-разработки. Однако обучение на этом не заканчивается. Поэтому продолжайте искать надежные ресурсы, онлайн-курсы и практические проекты, чтобы улучшить свои навыки.

Читайте также: