- Полноценное Python приложение на Android
- isortViewer
- Как это делалось
- Как разрабатывать на Python под Android
- Python-for-android
- Обращение к Android API с помощью PyJNIus
- Plyer: кроссплатформенное API для платформоспецифичных задач
- Не только ради Kivy
- Устанавливаем и программируем на Питоне на Андроиде
- Установите Pydroid 3 И Его Плагины
- Пакеты Установки Pip
- Используйте Встроенный Интерфейс Командной Строки Pydroid 3
- Используйте оболочку Python
- Сохраняйте Папки И Файлы На Вашем Устройстве
- Публикация исходного кода на Pastebin
- Настройка IDE
- Можете Ли Вы Использовать Pydroid Для Любого Проекта?
- Как построить веб-приложение на вашем телефоне – Python & Pydroid Android-приложение Учебное пособие
- Требования
- Как построить наш проект
- Как настроить приложение
- Hello World
- Как настроить статические файлы
- Как загрузить модели и панель администратора
- Как визуализации данных из БД для просмотра
Полноценное Python приложение на Android
В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Начну рассказ пожалуй с самого приложения и завершу рассказам о том как оно делалось.
isortViewer
Мне как фотографу приходится тратить много времени на сортировку и отбор фотографий. Не всегда хочется сидеть за рабочим компьютером, когда под рукой есть ноутбук, смартфон или планшет, но копировать туда десятки гигабайт raw или jpeg файлов, а потом синхронизировать с рабочим компьютером — сомнительное удовольствие. Именно поэтому я создал программы isortManager и isortViewer, которые значительно облегчили мне работу по сортировке и отбору фотографий. Теперь заниматься отбором и сортировкой фотографий я могу лежа на пляже диване или скучая в пробке 🙂
Копипаст описания и пара скриншотов:
isortViewer — программа для фотографов, которая позволяет легко и быстрой отбирать и сортировать тысячи фотографий (raw или jpg) с фотосессий на ваших android смартфонах и планшетах. При этом, нет необходимости копировать десятки гигабайт jpg или raw файлов на устройство. Просто воспользуйтесь бесплатной программой isortManager для компьютера, которая сохранит все в один небольшой файл проекта:
1. Скачайте и запустите isortManager с официального сайта;
2. Создайте проект и добавьте папки с фотографиями. Поддерживаются форматы: jpg и raw (cr2, nef, orf и т.д.). В итоге у вас получится небольшой файл проекта (примерно 150 мб на несколько тысяч фотографий, будь то jpg или raw формат);
3. Скопируйте на ваше android устройство файл проекта, откройте в isortViewer. Вы можете помечать фотографии «на удаление», а так же, ставить рейтинги от 1 до 5 звезд;
4. После этого, скопируйте файл проекта обратно и примените изменения в isortManager. Кроме удаления выбранных фотографий, вы можете копировать или перемещать отмеченные фотографии. Например, фотографии с «5 звезд» можно скопировать в папку «шедевры», а «1 звезда» переместить в папку «хлам».
Приложение абсолютно бесплатно и доступно на google.play, однако донейты приветствуются.
Исходники доступны на официальном сайте!
Как это делалось
Так как python лучший язык программирования в мире кроме python я ничего не знаю, решено было написать приложение на python.
isortManager
С isortManager для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:
И да, все это работает и на linux, и даже быстрее чем на windows )
isortViewer для android
Всего я нашел два способа заставить python приложение работать как полноценное приложение на android, это pygame for android и проект kivy.
Pygame — более низкоуровневый, все UI пришлось бы рисовать вручную, что отняло бы много времени, поэтому был выбран фреймворк kivy. Итак:
Это замечательный фрейморк для написания приложение для windows, linux, MacOS, android и iOS. Поддерживается мультитач, UI рисутется через OpenGL, значит должно работать аппаратное ускорение. Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase. Есть возможность использования некоторых платформо специфичных функций, например, вибро или акселерометр, с помощью модуля android.
Для разработки я бы рекомендовал использовать linux, тем более, apk собираются именно в этой OS.
Hello World выглядит так:
Причем этот код будет работать на всех заявленных платформах. Пропадает необходимость в тестировании приложения в эмуляторе. Достаточно запустить скрипт на исполнение в своей любимой IDE и увидеть результат на экране компьютера, без задержек на компиляцию, запуск эмулятора и пр. Если вы все же хотите увидеть как это будет выглядеть непосредственно на устройстве, просто установите Kivy Launcher, скопируйте файлы проекта на карту памяти и запустите. Дебажить при этом можно при помощи adb logcat.
Если вы используете библиотеку android, которой нет на PC, но хочется запускать приложение не только на android, воспользуйте такой конструкцией:
Сборка apk достаточно проста и описана на этой странице. После сборки релиза, достаточно подписать свое приложение (я использовал этот мануал) и выложить в google play.
В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.
Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.
Источник
Как разрабатывать на Python под Android
Рассказывает Александр Тейлор, разработчик проекта Kivy
В последнее время появляется большое количество ресурсов по разработке на Python под Android. Все чаще упоминается предназначенный для этой задачи фреймворк Kivy (и его ответвления), ведь он является одним из самых проверенных временем и надежных проектов в этой области. Тем не менее, одну важную деталь незаслуженно обделяют вниманием — что вообще мы сможем делать после того, как Python станет запускаться на устройстве? Есть ли какие-то ограничения? Все ли библиотеки можно подключать? Возможно ли делать все то же, что и при написании приложения на Java? Данные вопросы волнуют многих, и они рассматриваются и решаются в рамках проекта Kivy. В этой статье я постараюсь рассмотреть наиболее интересные и важные детали.
Python-for-android
Прежде всего давайте посмотрим на то, с помощью чего Python получает возможность работать под Android — инструмент, названный, как ни странно, python-for-android. Его основная функция состоит в том, чтобы создать дистрибутив — папку проекта, содержащую все необходимое для запуска вашего приложения. А точнее, сам интерпретатор, Kivy и библиотеки, от которых он зависит: Pygame, SDL и несколько других. Также дистрибутив включает в себя загрузчик Java, отображающий OpenGL и выступающий в качестве посредника между Kivy и операционной системой. Затем вы добавляете ко всему этому свои скрипты, настройки вроде иконки и имени, компилируете с помощью Android NDK и вуаля — APK с вашим приложением готов!
И это всего лишь базовая процедура, на самом деле сгенерированный пакетный файл может включать (и включает) в себя гораздо больше. Вместе со всем прочим в APK вшивается большая часть стандартной библиотеки, а любой сторонний модуль, написанный на Python, может быть легко добавлен — все так же, как и при разработке десктоп-приложений. Добавка модулей с компилируемыми компонентами тоже не вызывает трудностей, необходимо лишь указать, как их нужно собирать. Как правило, это не представляет собой ничего сложного, достаточно лишь поставить пару галочек перед запуском процедуры сборки, хотя в редких отдельных случаях могут понадобиться дополнительные действия. Python-for-android уже включает в себя указания для компиляции таких популярных модулей, как: numpy, sqlite3, twisted и даже django!
Вышеописанные принципы лишь в общих словах объясняют, как работает python-for-android. В любой момент вы можете получить больше информации на данную тему, заглянув в документацию Kivy. Я рекомендую вам Buildozer — надстройку для python-for-android, предоставляющую собой удобный интерфейс и автоматическое разрешение некоторых зависимостей. Мы стараемся сделать так, чтобы написанная выше цепочка действий использовалась не только в Kivy, но и в других проектах. Основной процесс сборки останется таким же, но нужда в загрузчике Java отпадет, так как он необходим только для поддержки некоторых специфичных нужд фреймворка.
Обращение к Android API с помощью PyJNIus
Взаимодействие с Android API: получение информации с сенсоров, создание уведомлений, вибрация, пауза и перезапуск, да что угодно — важная часть вашего приложения. Kivy за вас позаботится об основном, но многими вещами вы захотите управлять сами. Для этого создан PyJNIus — инструмент, автоматически оборачивающий код на Java в интерфейс Python.
В качестве простого примера приведем программу, которая заставит телефон вибрировать на протяжении 10 секунд:
Если вы знакомы с Android API, то без труда заметите, что код выше очень похож на аналогичный на Java — PyJNIus просто позволяет нам обращаться к тому же API, но прямо из Python. Большая часть Android API может быть вызвана подобным образом, что позволяет достичь того же функционала, что и при разработке на Java.
Главный минус PyJNIus в том, что он требует неплохого понимания структуры Android API, а код выходит громоздким, хотя его эквивалент на Java выглядит точно так же. Для решения этой проблемы Kivy включает в себя Plyer.
Plyer: кроссплатформенное API для платформоспецифичных задач
Проект Plyer ставит себе цель создать простой «питоничный» интерфейс для функций, которые присутствуют на большинстве платформ. Например, код выше легким движением руки превращается в…
Более того, написанный код попытается выполнить свою задачу на всех поддерживаемых Plyer платформах — на данный момент это: Android, iOS, Linux, Windows и OS X (для iOS также существует аналог PyJNIus, называемая PyOBJus). На самом деле, вибрация — не самый лучший пример, потому что сейчас она реализована только для Android, но такие функции как проверка уровня заряда батареи:
— работают как в десктопных, так и в мобильных приложениях, а получение данных с компаса/гироскопа и отправка SMS без проблем реализуются на Android и iOS.
Plyer находится на начальной стадии развития, так что любая помощь в разработке приветствуется. Также, мы участвуем с ним в Google Summer of Code в этом году.
Не только ради Kivy
Все вышеперечисленные инструменты были разработаны для нашего фреймворка, но на самом деле они больше предназначены для разработки под Python в целом. В Plyer мы специально избегаем какой-либо зависимости от Kivy, а PyJNIus нужен лишь для доступа к Android JNI. Искренне надеемся, что эти инструменты станут полезны для любого, кто пишет на Python под Android. Вы уже можете попробовать PyJNIus, используя QPython. Python-for-android больше завязан на взаимодействии с Kivy, но мы будем рады обсудить этот вопрос.
Многое можно реализовать при разработке на Android с помощью Python, несмотря на все различия с Java, которая предназначена для этого, но эти возможности могут быть расширены еще больше в ближайшем будущем. И если вы заинтересовались описанными выше проектами, то самое время присоединиться к нашей команде!
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Источник
Устанавливаем и программируем на Питоне на Андроиде
Узнайте, как установить IDE Pydroid 3 на Android, а также полезные инструменты и библиотеки для практики программирования на Python!
Независимо от того, являетесь ли вы новичком в программировании на Python или являетесь экспертом, давайте посмотрим, как вы можете использовать Pydroid 3 в полной мере на своем устройстве Android.
Установите Pydroid 3 И Его Плагины
По умолчанию Pydroid 3 не имеет разрешения на доступ к памяти вашего устройства. Это делает создание папок проекта трудным или невозможным без некоторых технических манипуляций. Чтобы решить эту проблему, загрузите плагин разрешений Pydroid из Play Store, который разрешит Pydroid создавать папки и файлы на вашем устройстве.
Пакеты Установки Pip
После того, как вы все настроили, вы можете начать использовать команду pip для установки пакетов для своих проектов, ровно также, как вы это делаете на ПК. Pydroid 3 поставляется с интерфейсом, который позволяет устанавливать пакеты без написания команд в терминале.
Есть несколько способов установить пакеты pip на Pydroid 3. Чтобы получить доступ к этой функции, нажмите значок меню (который выглядит как три линии) в верхнем левом углу приложения. Далее перейдите к строке Pip. В верхней части меню Pip выберите ПОИСК БИБЛИОТЕК(Search Libraries), чтобы получить дополнительные параметры модуля, который вы хотите установить. Или вы можете нажать на опцию БЫСТРАЯ УСТАНОВКА(Quick Install), чтобы установить пакеты, предлагаемые к установке по умолчанию.
Используйте Встроенный Интерфейс Командной Строки Pydroid 3
Pydroid 3 также предлагает и классический минимальный интерфейс командной строки (CLI) Linux. Чтобы получить к нему доступ, нажмите значок меню в верхнем левом углу приложения и выберите Терминал (Terminal):
Хотя запуск команды pip install packages через встроенный терминал занимает некоторое время для загрузки, она по-прежнему позволяет легко перемещаться между папками и создавать новые везде, где на вашем устройстве разрешена запись. Отметим что медленная загрузка пакетов установки pip через терминал является незначительной проблемой для Pydroid IDE.
Если вы хотите использовать предоставленную командную строку для каких-либо других целей, то имейте ввиду, что ОС Android построена на Linux, поэтому вам необходимо иметь общее представление о том, как использовать командную строку Linux.
Используйте оболочку Python
Пустая страница, которая появляется при открытии Pydroid 3, является его встроенной оболочкой Python. Как и оболочка Python на вашем ПК, она по умолчанию видит любую написанную на ней команду как код Python.
Чтобы использовать оболочку, введите любую команду Python и нажмите большую кнопку запуска в нижнем левом углу редактора. Это откроет интерпретатор Python, который отобразит работу вашего кода.
Закончив работу, введите exit (), чтобы покинуть оболочку Python командной строки.
Сохраняйте Папки И Файлы На Вашем Устройстве
Как и любой другой редактор кода, Pydroid 3 имеет интерфейс, который позволяет сохранять файл в любой названной папке на вашем устройстве. Если вы хотите создать папку проекта, вы также можете сохранить новые папки с нужными параметрами сохранения файлов.
Чтобы создать новый файл полностью, коснитесь значка папки. Выберите « Создать» и следуйте инструкциям, выделенным ранее, чтобы сохранить файл в папке. Если вы хотите, чтобы ваш новый файл находился в том же каталоге, что и существующий, убедитесь, что вы выбрали ту же папку, которая содержит существующий.
Публикация исходного кода на Pastebin
Откройте любой браузер на своем устройстве Android и вставьте скопированную ссылку в строку поиска, чтобы увидеть исходный код на Pastebin. Вы также можете поделиться этой ссылкой с людьми, которым вы хотите предоставить доступ к своему коду.
Настройка IDE
Вы также можете настроить среду разработки, если хотите. Чтобы изменить внешний вид редактора, коснитесь значка настройки в верхнем левом углу экрана и перейдите в « Настройки»> «Внешний вид», чтобы переключиться на предпочитаемую тему, или выберите другие доступные параметры внешнего вида.
Чтобы получить дополнительные возможности настройки, коснитесь параметра « Редактор» и выберите свои предпочтения. Вы также можете коснуться других опций в меню настроек, чтобы увидеть доступные вам опции.
Когда вы щелкаете по значку меню, параметр «Настройки терминала» также предлагает некоторые конфигурации терминала.
При установке Pydroid 3 IDLE на ваше устройство Android автоматически загружается и устанавливается Python 3. Однако установленный Pydroid 3 IDLE для Python функционирует как виртуальная среда на Android и попытка запустить оболочку Python вне командной строки Pydroid IDLE выдает ошибку.
Если вы хотите попробовать работать в этом режиме, вам необходимо установить специальное стороннее приложение Android CMD (предпочтительно Termux из Google Play Store).
После установки Termux откройте его, убедившись, что вы также установили Pydroid 3. Затем введите python в Termux CMD. Он выдает ошибку каталога файлов, указывающую, что Python не существует в глобальном пространстве Android до его установки с помощью команды pkg install python через Termux.
Однако запуск python на встроенном терминале Pydroid 3 успешно входит в оболочку Python.
Можете Ли Вы Использовать Pydroid Для Любого Проекта?
Хотя написание и запуск кода Питона на Android может быть интересным, использование Pydroid для управления большим проектом не рекомендуется. Однако это еще один способ заняться мелкими проектами, особенно когда они не предназначены для долгосрочных реальных целей.
Помимо управления небольшими проектами, Pydroid 3 также является отличным инструментом, с которым можно поиграть, чтобы улучшить свои навыки программирования на Python, особенно если у вас нет ПК для запуска программ Python.
Источник
Как построить веб-приложение на вашем телефоне – Python & Pydroid Android-приложение Учебное пособие
Привет, как дела? Я 18-летний разработчик Backend и инженерский инженер-обучение машины. И в этой статье я собираюсь писать о том, как создать веб-приложение на вашем телефоне, используя Python 😁. Давайте погрузимся в это.
Требования
Первое, что нам нужно здесь, это телефон Android, по крайней мере, версия 6,0 и вверх. Но что, если я сказал вам, что все, что нам нужно? Кажется слишком хорошим, чтобы быть правдой.
Теперь следующее, что нам нужно сделать, это установить мобильное приложение на свой телефон под названием Pydroid 3.
Как видите, Pydroid3 – это мобильное приложение, которое позволяет писать Python на своем мобильном телефоне, поэтому идите вперед и установите его.
Следующее, что нам нужно сделать, это установить Django. Если вы не знакомы с Django, пожалуйста, проверьте Django Docs здесь Отказ
Чтобы установить Django, нам нужно открыть боковую навигацию в нашем Pydroid3 и выберите Терминал:
Затем нажмите на него, и мы должны увидеть это:
Как только это сделано, все, что вам нужно сделать, это введите следующую команду:
И вы должны получить ниже. Я получаю сообщение «Довольные требования», потому что у меня уже установлено.
Он успешно установил, но давайте подтвердим это. В типе терминала Django-admin и нажмите ввод.
Вы должны получить это:
Это означает, что он на самом деле уже установлен.
Как построить наш проект
Итак, давайте начнем с создания нашего проекта. Откройте свой терминал и введите следующую команду:
Django-Admin StartProject MyApp
Это создает приложение Django под названием MyApp в вашей корневой папке.
Изменить каталог на него, набрав CD MyApp и введите Python Manage.py Runserver Отказ Тогда вы должны получить это:
Теперь сервер начался. Далее, чтобы проверить его в браузере Посетите 127.0.0.1:8000 Отказ
И бум! Вы должны увидеть, что Django успешно установлено.
Следующее, что нам нужно сделать, это создать наше приложение Django. В Django папка Project служит корнем, пока приложение служит самим приложением.
Чтобы создать приложение Django, убедитесь, что вы все еще в каталоге, затем введите Python Manage.py StartApp Todo Отказ Это создает приложение TO-DO в нашем проекте MyApp, как это:
Затем внутри папки Todo мы должны увидеть что-то вроде этого:
Мы сделаем дальнейшее посмотрите на файлы, когда начнем работать с ними.
Как настроить приложение
Теперь давайте сделаем это возможным для обслуживания проекта Django. Прежде всего, откройте свой settings.py Файл в папке MyApp и добавьте «TODO» К установленным приложениям, как это:
Далее нам нужно открыть наши URLS.PY и добавьте следующее в свой код:
Что на самом деле произошло, было то, что я добавил включить от django.urls Путь импорта. А ниже пути ( admin ), мы создали пустой путь, который указывает на или включает в себя URLS.PY Файл в каталоге Todo App. Я надеюсь, что это ясно.
Далее нам нужно создать новый файл в каталоге файла TODO с именем URLS.PY и добавьте следующий код в нем:
Наверх, импорт Httpresponse как это:
от Django.http Импорт httpresponse
И добавьте это под ним:
Как видите, мы создали функцию индекса, которую мы позвонили в нашу URLS.PY И мы передали параметр запроса в него. Тогда мы вернули Httpresponse Отказ
Но до Httpresponse Можно работать, мы должны импортировать его из django.http Импорт httpresponse – так же просто, как ABC. Давайте попробуем это: откройте свой терминал и CD в MyApp и введите Python Manage.py Runserver Чтобы проверить это.
Как видите, он вернул ответ. Так что дальше мы загрузим наш шаблон HTML-файлы.
Чтобы загрузить наши HTML-файлы, нам нужно создать такую папку в каталоге TODO в этом порядке:
В каталоге Todo создайте папку с именем шаблонов. Внутри этой папки создайте папку, называемую TODO, так же просто.
Тогда продолжайте и создайте простой HTML-файл под названием Index.html и напишите это в нем:
Hello World
Теперь вместо возврата ответа мы вернули визуализацию визуализации, которое позволяет нам сделать наш HTML-шаблон сейчас, сохранить этот откройте свой клеммный CD в MyApp и запустить его. У нас должно быть это
Как вы можете видеть, это работает хорошо – на следующий шаг.
Как настроить статические файлы
Теперь, чтобы настроить статические файлы, создайте новую папку в каталоге Todo и назовите его Static. Внутри этой папки создайте папку и назвать ее TOO.
Так что это должно быть так: /Static/Todo/ Отказ
В каталоге Todo создайте файл и назовите его main.csss Отказ Тогда давайте напишем небольшой стиль в нем:
Теперь давайте повторно отредактируем нашу index.html Файл, написав этот код:
И теперь давайте запустим это:
Если вы использовали вместе со мной, то у вас должно быть выше.
Как загрузить модели и панель администратора
Теперь загрузить нашу панель администратора, нам нужно создать суперпользователь. Это просто сделать – просто откройте свой терминал и CD в папку MyApp, затем введите Python Manage.py CreateSuperUser и нажмите ввод. Вы должны увидеть это:
Мы получаем ошибку, потому что мы не работали Python Manage.py Миграция еще. Так что наберите это и нажмите Enter, и вы должны иметь что-то вроде этого:
Теперь введите Python Manage.py CreateSuperUser и нажмите Enter:
Просто заполните учетные данные. Следующее, что нам нужно сделать, это управлять нашим сервером и указать на 127.0.0.1:8000/Admin.
Войти, и вы будете направлены на приборную панель:
Теперь, когда мы сделали панель администратора, давайте работать с моделью (базой данных). Мы создадим модель, которая собирает содержимое. Так что откройте свой Models.py Файл и введите этот код:
Так что дальше нам нужно провести миграцию. Откройте свой терминал, CD в MyApp, и введите Python Manage.py Makemigrations Отказ Вы должны увидеть это:
Это означает, что он создал почтовый стол в нашей базе данных. Тогда и запустите Python Manage.py Миграция который приведет к следующему:
Это означает, что все ясно. Теперь, чтобы добавить его на страницу администратора, откройте admin.py И введите этот код:
Мы импортировали все классы модели из модели и зарегистрировали модель Post на панели администратора. Теперь, если мы открываем панель администратора, мы должны увидеть сообщение и сохранить некоторые данные.
Обратите внимание, что сейчас в списке приложений Todo:
После нажатия на него вы должны увидеть это:
Тогда вы можете создать пост, если хотите.
Как визуализации данных из БД для просмотра
Это так просто: мы импортировали все из Models.py создал переменную под названием Содержание и восстановил все данные из поста таблицы. Затем мы передали его как словарь на наш взгляд. Так что в нашем index.html заставить его работать просто добавить это:
Здесь мы написали петлю, используя тег шаблонов и выделил все содержимое данных. Теперь откройте свой терминал, CD в MyApp и запустите сервер, чтобы увидеть магию:
Это работает, но давайте подтвердим, что это делает:
И результат должен быть следующим:
Violà – это работает нормально. Наконец, вы можете просто добавить перерыв на линии, чтобы вы могли прочитать его более четко. И мы закончили!
Спасибо за чтение. Если вы хотите пройти через углубленный учебник Django, пожалуйста, посетите мой канал YouTube DevStack и подписаться.
Источник