Django встречает Flutter: интеграция бэкенда и внешнего интерфейса для легкой разработки приложений

78
технологии 13.webp

Последнее обновление 03.04.2023 — Василий Иванов

Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

В современном мире мобильные приложения необходимы каждому бизнесу. Flutter и Django — две популярные среды, используемые для разработки приложений. Flutter — это набор инструментов пользовательского интерфейса с открытым исходным кодом для создания красивых, нативно скомпилированных приложений для мобильных устройств, Интернета и настольных компьютеров из единой кодовой базы.

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

Изучение значения Django и Flutter в разработке приложений

Django основан на архитектурном шаблоне Model-View-Controller (MVC) и следует принципу Don’t Repeat Yourself (DRY), который обеспечивает повторное использование кода и уменьшает избыточность.

По теме:  Работа с сенсорным вводом в PyGame

Вы можете использовать Flutter 3.7, выпущенный в феврале 2023 года, для создания красивых, скомпилированных в собственном коде приложений для мобильных устройств, Интернета и настольных компьютеров из единой кодовой базы. Flutter использует язык программирования Dart, быстрый, современный и оптимизированный для мобильной разработки.

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

Ограничения интеграции Django с Flutter

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

Хотя Django и Flutter имеют большое и активное сообщество, интеграция между ними все еще находится на ранней стадии, поэтому разработчики могут столкнуться с трудностями при поиске решений конкретных проблем.

Как интегрировать Django с Flutter

Первый раздел поможет вам настроить проект Django, а второй — настроить флаттер.

1. Настройте свой проект Django

Вы можете создать REST API, используя инфраструктуру Django REST. Начните с создания виртуальной среды и установки Django:

 pip install django 

Затем установите Django REST framework, мощный и гибкий набор инструментов для создания API:

 pip install django-rest-framework 

Программа pip должна вывести сообщение об успешной установке:

В завершение создайте новый проект с помощью интерфейса командной строки Django (CLI):

 django-admin startproject myproject 

2. Создайте приложение Django

Начните с создания нового приложения в вашем проекте с помощью интерфейса командной строки Django:

 django-admin startapp api 

Затем определите модели Django в файле models.py для представления данных в вашем приложении. Затем перенесите свои модели в базу данных с помощью следующей команды:

 python manage.py makemigrations
python manage.py migrate

Продолжите создание представлений Django в views.py для обработки HTTP-запросов и ответов. Не забудьте добавить следующее в операторы импорта:

 from rest_framework.decorators import api_view, permission_classes 

Это если вы используете представления функций, а не представления классов. Для представлений класса:

 from rest_framework.views import APIView 

Чтобы преобразовать сложные типы данных в JSON или XML, вы можете определить сериализаторы в Django. Они сериализуют данные в формате, который можно легко передавать между различными системами. Кроме того, вы можете использовать метод JsonResponse в операторе return, чтобы напрямую сгенерировать ответ JSON.

 from django.http import JsonResponse

Затем используйте его в представлении, как показано ниже.

 @api_view(['GET'])
@permission_classes((permissions.AllowAny,))
def getRoutes(request):
   routes = [{
       'Endpoint': '/homeapi/',
       'method': 'GET',
       'body': {'body': ""},
       'description': 'Returns a dict of data'
   }]

   view = APIView()
   view.queryset = routes
   return JsonResponse(routes, safe=False, status=200)

Определите шаблоны URL-адресов в urls.py:

 from django.urls import path
from . import views

urlpatterns = [
    path('homeapigetroutes/', views.getRoutes),
    path('homeapi/',views.home_page),
    path('homeapi/login/', views.login_page),
    path('homeapi/csrf/', views.getcsrftoken),
    path('homeapi/submitform/', views.submit_form),
]

Это URL-адреса, которые вы будете использовать в качестве конечных точек в приложении Flutter. Если вы размещаете свое приложение Django на PythonAnywhere, просто перезагрузите свое веб-приложение, чтобы активировать API.

3. Создайте проект Flutter

Интерфейс командной строки Flutter удобен для пользователя и предлагает широкий набор команд для эффективного управления проектами.

Установите Flutter, если он еще не установлен. Чтобы создать новый проект, запустите эту команду терминала:

 flutter create my_project 

Добавьте зависимости для пакета dio и диспетчера файлов cookie dio в файл pubspec.yaml:

 dio: ^5.0.0dio_cookie_manager: ^2.0.0 

Dio — это пакет, который предоставляет HTTP-клиент для выполнения запросов API. dio_cookie_manager — это дополнительный пакет, который работает с dio для управления файлами cookie для этих запросов.

Создайте файл api.dart для назначения переменных конечным точкам Django rest.

 const loginUrl = 'https://test.pythonanywhere.com/api/homeapi/login/';
const csrfurl = 'https://test.pythonanywhere.com/api/homeapi/csrf/';
const dataUrl = 'https://test.pythonanywhere.com/api/homeapi/';
const noteUrl = 'https://test.pythonanywhere.com/api/homeapi/submitform/';

Затем вы можете использовать свои конечные точки, выполняя запросы POST, GET, PUT или DELETE, в зависимости от ваших потребностей. Обязательно импортируйте файл api.dart.

Например, если вы хотите получить данные из конечной точки с именем dataUrl:

 var response = await dio.get(dataUrl); 

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

 flutter run 

Flutter сообщит вам, что запущен в режиме отладки:

Затем вы можете отслеживать запросы к API в журналах вашего сервера Django.

Будущее интеграции Django и Flutter в разработке приложений

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

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