Quickstarters

Как создать бекенд для Flask?

41min

Введение

В этом учебном пособии вы узнаете как создать бэкенд для Flask с использованием Back4App.

Flask — это легковесный бэкенд-фреймворк, который легко обрабатывает HTTP-запросы и эффективно работает в режиме отладки во время разработки.

Мы пройдем через интеграцию основных функций Back4App — таких как управление базами данных, функции Cloud Code, REST и GraphQL API, аутентификация пользователей и запросы в реальном времени (Live Queries) — чтобы создать безопасный, масштабируемый и надежный бэкенд для вашего Flask приложения.

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

Мы будем использовать код на Python, чтобы подключить Flask к серверу Back4App Parse. В процессе вы получите практический опыт с ключевыми функциональными возможностями, включая расширенные функции безопасности, планирование задач с помощью Cloud Jobs и настройку вебхуков для внешних интеграций.

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

Предварительные требования

Чтобы завершить этот учебник, вам понадобятся:

  • Учетная запись Back4app и новый проект Back4app Начало работы с Back4app. Если у вас нет учетной записи, вы можете создать ее бесплатно. Следуйте приведенному выше руководству, чтобы подготовить ваш проект.
  • Базовая среда разработки Flask Вы можете установить Flask с помощью pip install flask. Убедитесь, что у вас установлена Python 3.7+ на вашем компьютере.
  • pip install parse Этот пакет Python позволяет вашему приложению Flask взаимодействовать с Parse Server от Back4App.
  • Знание Python и концепций Flask Официальная документация Flask. Если вы новичок в Flask, ознакомьтесь с официальной документацией или учебником для начинающих перед началом.

Убедитесь, что у вас есть все эти предварительные условия перед началом. Наличие вашего проекта Back4app и готовой локальной среды Flask поможет вам легче следовать инструкциям.

Шаг 1 – Создание нового проекта на Back4App и подключение

Создать новый проект

Первый шаг в создании вашего бэкенда Flask на Back4App – это создание нового проекта. Если вы еще не создали его, выполните следующие шаги:

  1. Войдите в свою учетную запись Back4App.
  2. Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
  3. Дайте вашему приложению имя (например, “Flask-Backend-Tutorial”).
Document image


После создания проекта вы увидите его в списке на вашей панели управления Back4app. Этот проект является основой всех конфигураций бэкенда.

Подключите Parse SDK к Flask

Back4App полагается на платформу Parse для управления вашими данными, предоставления функций в реальном времени, обработки аутентификации пользователей и многого другого.

Подключение вашего приложения Flask к Back4App включает установку parse Python пакета и его инициализацию с учетными данными из вашей панели управления Back4App.

Получите ваши ключи Parse: В вашей панели управления Back4app перейдите в раздел “Настройки приложения” или “Безопасность и ключи”, чтобы найти ваш ID приложения и Ключ клиента (или Ключ REST API при необходимости). Вы также найдете URL сервера Parse (часто в формате https://parseapi.back4app.com).

Document image


Установите Parse Python SDK в вашей среде Flask, выполнив:

Bash


Инициализируйте Parse в вашем приложении Flask: Создайте файл (например, parse_config.py) в каталоге под названием app или где бы вы ни хранили свои модули бэкенда:

parse_config.py


Затем, в вашем основном файле приложения Flask (например, app.py, вы можете импортировать модули flask app flask, а также вашу конфигурацию Parse:

Python


Завершив этот шаг, вы установили безопасное соединение между вашими маршрутами фронтенда Flask и бэкендом Back4App. Все запросы и транзакции данных безопасно маршрутизируются через код Parse на Python, что снижает сложность ручных вызовов REST или GraphQL (хотя вы все равно можете использовать их при необходимости).

Шаг 2 – Настройка базы данных

Создание модели данных

Прежде чем мы начнем, давайте поговорим о настройке базы данных. Вы можете спроектировать свою схему данных в панели управления Back4App или позволить Parse создать ее на лету. Например, вы можете создать класс с именем “Todo” с полями, такими как title и isCompleted.

  1. Перейдите в раздел “База данных” в вашей панели управления Back4App.
  2. Создайте новый класс (например, “Todo”) и добавьте соответствующие столбцы, такие как title (String) и isCompleted (Boolean).
Создать новый класс
Создать новый класс


Back4app поддерживает различные типы данных, такие как String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, и Polygon. Вы можете выбрать подходящий тип для каждого поля.

Создание модели данных с помощью AI Agent

Если вы предпочитаете автоматизированный подход, вы также можете использовать AI Agent от Back4app:

  1. Откройте AI Agent из вашей панели управления приложением.
  2. Опишите вашу модель данных простым языком (например, “Создайте класс ToDo с полями title и isCompleted в Back4app.”).
  3. Позвольте AI Agent создать схему для вас.
Document image


Чтение и запись данных с использованием SDK

В Flask вы можете создавать и извлекать данные, импортируя parse из вашего parse_config.py инициализации:

Python


Этот файл приложения Flask обрабатывает http-запросы для создания и чтения задач Todo в вашей базе данных Back4App.

Чтение и запись данных с использованием REST API

Если вы предпочитаете прямые REST-вызовы, вы можете протестировать с помощью curl из командной строки:

Bash


Чтение и запись данных с использованием GraphQL API

Аналогично, Back4app предоставляет конечную точку GraphQL. Например:

GraphQL


Работа с живыми запросами (по желанию)

Если вам нужны обновления в реальном времени, Back4app предоставляет живые запросы. В сценарии Flask вы обычно используете отдельную библиотеку подписки на стороне клиента или сервера, которая может поддерживать соединение websocket с сервером живых запросов Back4App.

  1. Включите живые запросы в вашей панели управления Back4app в разделе Настройки сервера.
  2. Используйте клиент Parse LiveQuery который подключается к wss://YOUR_SUBDOMAIN_HERE.b4a.io и слушает события создания/обновления/удаления.

Шаг 3 – Применение безопасности с помощью ACL и CLP

Краткий обзор

Back4app предоставляет Списки контроля доступа (ACL) и Разрешения на уровне класса (CLP) для защиты данных. ACL применяются к отдельным объектам, в то время как CLP применяются ко всему классу. Это помогает вам ограничивать или разрешать операции чтения/записи для каждого пользователя, роли или для общественности.

Document image


Настройка разрешений на уровне класса

  1. Перейдите в свою панель управления Back4app, выберите свое приложение и откройте раздел База данных.
  2. Выберите класс (например, “Todo”).
  3. Откройте вкладку Уровень разрешений класса.
  4. Настройте свои параметры по умолчанию, такие как “Требуется аутентификация” или “Нет доступа.”

Настройка ACL в коде

Вы можете применять ACL в коде Python:

Python


Шаг 4 – Написание функций облачного кода

Почему облачный код

Облачный код идеально подходит для выполнения python кода (или JavaScript в других сценариях) на стороне сервера, поэтому вам не нужно размещать свою собственную инфраструктуру. Вы можете выполнять задачи, такие как валидация данных, выполнение сложных расчетов или интеграция с внешними сервисами непосредственно с сервера Parse.

Пример функции

Поскольку среда Cloud Code по умолчанию для Back4App использует Node.js, вы будете писать свой Cloud Code на JavaScript. Тем не менее, вы все равно можете вызывать эти серверные скрипты из вашего Flask приложения. Например, функция Cloud на Node.js может выглядеть так:

main.js


Развертывание

Используйте Back4app CLI для развертывания вашего Cloud Code:

Bash


В качестве альтернативы вы можете развернуть через панель управления Back4app, вставив ваш JS код в Cloud Code > Functions и нажав “Развернуть.”

Document image


Вызов вашей функции

В Flask вы можете вызвать эту облачную функцию, используя REST:

Python


Шаг 5 – Настройка аутентификации

Включите или настройте аутентификацию пользователей в панели управления Back4App

Back4App использует класс User по умолчанию. Parse обрабатывает хеширование паролей, токены сессий и безопасное хранение. Вы можете управлять этими функциями в ваших Настройках приложения.

Примеры кода

Python


Социальный вход

Back4App и Parse могут интегрироваться с социальными провайдерами, такими как Google, Apple или Facebook. Подробности настройки различаются, поэтому обратитесь к официальным Документация по социальному входу Parse.

Шаг 6 – Обработка хранения файлов

Настройка хранения файлов

Вы можете загружать файлы в вашу базу данных Parse из Flask, создавая объект parse.File() в среде на основе Node, или вы можете использовать прямые REST-вызовы из Python. Если вы храните ссылки на эти файлы в ваших классах, их легко извлечь.

Python


Пример

После загрузки файла вы получите URL файла, который можете сохранить в вашей базе данных. Затем вы можете отобразить или сослаться на этот файл в вашем html-шаблоне по мере необходимости.

Шаг 7 – Подтверждение электронной почты и сброс пароля

Обзор

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

Конфигурация панели управления Back4App

  1. Перейдите в настройки электронной почты на панели управления Back4App.
  2. Включите подтверждение электронной почты и настройте шаблоны электронной почты.
  3. Включите сброс пароля для отправки ссылок на восстановление пароля на электронную почту пользователя.

Код/Реализация

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

Шаг 8 – Планирование задач с помощью облачных заданий

Что делают облачные задания

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

Пример

JS


Затем, из вашей панели управления Back4App:

  1. Перейдите в настройки приложения > Настройки сервера > Фоновые задания.
  2. Запланируйте это задание для выполнения ежедневно или с вашим предпочтительным интервалом.
Планирование облачного задания
Планирование облачного задания


Шаг 9 – Интеграция вебхуков

Определение

Webhooks позволяют вашему приложению Back4app отправлять данные во внешние сервисы, когда происходят определенные триггеры. Это полезно для интеграции с платежными шлюзами, Slack, аналитикой или любыми сторонними сервисами.

Конфигурация

  1. Перейдите к конфигурации Webhooks в вашей панели управления Back4App > Дополнительно > WebHooks.
  2. Добавьте новый Webhook.
  3. Установите конечную точку (например, https://your-external-service.com/webhook-endpoint).
  4. Выберите триггеры для которых будет срабатывать webhook.
Добавление Webhook
Добавление Webhook


Пример

Если вы хотите уведомлять канал Slack каждый раз, когда создается новая запись в “Todo,” установите URL-адрес webhook Slack. Затем, каждый раз, когда новый Todo сохраняется, Slack будет получать POST-запрос с его деталями.

Шаг 10 – Изучение панели администратора Back4App

Приложение Back4App Admin App предоставляет удобный интерфейс для не технических членов вашей команды. Это ориентированный на модели интерфейс для операций CRUD и задач уровня предприятия.

Где это найти

  1. Перейдите в свою панель управления приложением.
  2. Выберите Дополнительно > Админ-приложение и включите его.
  3. Создайте администратора и выберите поддомен для размещения панели.
Включите админ-приложение
Включите админ-приложение

Document image

Document image


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

Document image


Заключение

Следуя этому всестороннему руководству, вы:

  • Создали безопасный бэкенд для приложения Flask на Back4App.
  • Настроили базу данных с классами схем, типами данных и отношениями.
  • Интегрировали запросы в реальном времени (Live Queries) для немедленных обновлений данных.
  • Применили меры безопасности с использованием ACL и CLP для защиты и управления доступом к данным.
  • Реализовали функции Cloud Code для выполнения пользовательской бизнес-логики на стороне сервера.
  • Настроили аутентификацию пользователей с поддержкой проверки электронной почты и сброса паролей.
  • Управляли загрузкой файлов и их извлечением, с дополнительными мерами безопасности для файлов.
  • Запланировали Cloud Jobs для автоматизированных фоновых задач.
  • Использовали Webhooks для интеграции с внешними сервисами.
  • Изучили панель администратора Back4App для управления данными.

С надежным Flask бэкенд-фреймворком который может возвращать файлы шаблонов (если это необходимо) и с мощной настройкой Back4App, вы теперь готовы разрабатывать функциональные, масштабируемые и безопасные приложения.

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

Командная строка задачи становятся простыми с методы post def маршруты, которые принимают JSON-данные.

Следующие шаги

  • Создайте приложение Flask, готовое к производству путем расширения этого бэкенда для обработки более сложных моделей данных, стратегий кэширования и оптимизации производительности.
  • Интегрируйте расширенные функции такие как специализированные потоки аутентификации, контроль доступа на основе ролей или внешние API (например, платежные шлюзы).
  • Посмотрите официальную документацию Back4app для более глубокого изучения вопросов безопасности, настройки производительности и анализа логов.
  • Изучите другие учебные пособия по приложениям для чата в реальном времени, IoT-панелям или услугам на основе местоположения. Вы можете комбинировать техники, изученные здесь, с API третьих сторон для создания сложных, реальных приложений.