Последнее обновление 03.04.2023 — Василий Иванов
Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.
В современном мире мобильные приложения необходимы каждому бизнесу. Flutter и Django — две популярные среды, используемые для разработки приложений. Flutter — это набор инструментов пользовательского интерфейса с открытым исходным кодом для создания красивых, нативно скомпилированных приложений для мобильных устройств, Интернета и настольных компьютеров из единой кодовой базы.
Django — это высокоуровневая веб-инфраструктура Python, которая позволяет быстро разрабатывать безопасные и удобные в обслуживании веб-сайты и веб-приложения.
Изучение значения Django и Flutter в разработке приложений
Django основан на архитектурном шаблоне Model-View-Controller (MVC) и следует принципу Don’t Repeat Yourself (DRY), который обеспечивает повторное использование кода и уменьшает избыточность.
Вы можете использовать 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 продолжает развиваться, мы можем ожидать появления более продвинутых функций и лучшей поддержки сообщества, что еще больше упростит разработчикам создание высококачественных мобильных приложений.