Как создать бекенд для Flask?
В этом учебном пособии вы узнаете как создать бэкенд для 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 поможет вам легче следовать инструкциям.
Первый шаг в создании вашего бэкенда Flask на Back4App – это создание нового проекта. Если вы еще не создали его, выполните следующие шаги:
- Войдите в свою учетную запись Back4App.
- Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
- Дайте вашему приложению имя (например, “Flask-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания проекта вы увидите его в списке на вашей панели управления Back4app. Этот проект является основой всех конфигураций бэкенда.
Back4App полагается на платформу Parse для управления вашими данными, предоставления функций в реальном времени, обработки аутентификации пользователей и многого другого.
Подключение вашего приложения Flask к Back4App включает установку parse Python пакета и его инициализацию с учетными данными из вашей панели управления Back4App.
Получите ваши ключи Parse: В вашей панели управления Back4app перейдите в раздел “Настройки приложения” или “Безопасность и ключи”, чтобы найти ваш ID приложения и Ключ клиента (или Ключ REST API при необходимости). Вы также найдете URL сервера Parse (часто в формате https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Установите Parse Python SDK в вашей среде Flask, выполнив:
Инициализируйте Parse в вашем приложении Flask: Создайте файл (например, parse_config.py) в каталоге под названием app или где бы вы ни хранили свои модули бэкенда:
Затем, в вашем основном файле приложения Flask (например, app.py, вы можете импортировать модули flask app flask, а также вашу конфигурацию Parse:
Завершив этот шаг, вы установили безопасное соединение между вашими маршрутами фронтенда Flask и бэкендом Back4App. Все запросы и транзакции данных безопасно маршрутизируются через код Parse на Python, что снижает сложность ручных вызовов REST или GraphQL (хотя вы все равно можете использовать их при необходимости).
Прежде чем мы начнем, давайте поговорим о настройке базы данных. Вы можете спроектировать свою схему данных в панели управления Back4App или позволить Parse создать ее на лету. Например, вы можете создать класс с именем “Todo” с полями, такими как title и isCompleted.
- Перейдите в раздел “База данных” в вашей панели управления Back4App.
- Создайте новый класс (например, “Todo”) и добавьте соответствующие столбцы, такие как title (String) и isCompleted (Boolean).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4app поддерживает различные типы данных, такие как String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, и Polygon. Вы можете выбрать подходящий тип для каждого поля.
Если вы предпочитаете автоматизированный подход, вы также можете использовать AI Agent от Back4app:
- Откройте AI Agent из вашей панели управления приложением.
- Опишите вашу модель данных простым языком (например, “Создайте класс ToDo с полями title и isCompleted в Back4app.”).
- Позвольте AI Agent создать схему для вас.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
В Flask вы можете создавать и извлекать данные, импортируя parse из вашего parse_config.py инициализации:
Этот файл приложения Flask обрабатывает http-запросы для создания и чтения задач Todo в вашей базе данных Back4App.
Если вы предпочитаете прямые REST-вызовы, вы можете протестировать с помощью curl из командной строки:
Аналогично, Back4app предоставляет конечную точку GraphQL. Например:
Если вам нужны обновления в реальном времени, Back4app предоставляет живые запросы. В сценарии Flask вы обычно используете отдельную библиотеку подписки на стороне клиента или сервера, которая может поддерживать соединение websocket с сервером живых запросов Back4App.
- Включите живые запросы в вашей панели управления Back4app в разделе Настройки сервера.
- Используйте клиент Parse LiveQuery который подключается к wss://YOUR_SUBDOMAIN_HERE.b4a.io и слушает события создания/обновления/удаления.
Back4app предоставляет Списки контроля доступа (ACL) и Разрешения на уровне класса (CLP) для защиты данных. ACL применяются к отдельным объектам, в то время как CLP применяются ко всему классу. Это помогает вам ограничивать или разрешать операции чтения/записи для каждого пользователя, роли или для общественности.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Перейдите в свою панель управления Back4app, выберите свое приложение и откройте раздел База данных.
- Выберите класс (например, “Todo”).
- Откройте вкладку Уровень разрешений класса.
- Настройте свои параметры по умолчанию, такие как “Требуется аутентификация” или “Нет доступа.”
Вы можете применять ACL в коде Python:
Облачный код идеально подходит для выполнения python кода (или JavaScript в других сценариях) на стороне сервера, поэтому вам не нужно размещать свою собственную инфраструктуру. Вы можете выполнять задачи, такие как валидация данных, выполнение сложных расчетов или интеграция с внешними сервисами непосредственно с сервера Parse.
Поскольку среда Cloud Code по умолчанию для Back4App использует Node.js, вы будете писать свой Cloud Code на JavaScript. Тем не менее, вы все равно можете вызывать эти серверные скрипты из вашего Flask приложения. Например, функция Cloud на Node.js может выглядеть так:
Используйте Back4app CLI для развертывания вашего Cloud Code:
В качестве альтернативы вы можете развернуть через панель управления Back4app, вставив ваш JS код в Cloud Code > Functions и нажав “Развернуть.”
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
В Flask вы можете вызвать эту облачную функцию, используя REST:
Back4App использует класс User по умолчанию. Parse обрабатывает хеширование паролей, токены сессий и безопасное хранение. Вы можете управлять этими функциями в ваших Настройках приложения.
Back4App и Parse могут интегрироваться с социальными провайдерами, такими как Google, Apple или Facebook. Подробности настройки различаются, поэтому обратитесь к официальным Документация по социальному входу Parse.
Вы можете загружать файлы в вашу базу данных Parse из Flask, создавая объект parse.File() в среде на основе Node, или вы можете использовать прямые REST-вызовы из Python. Если вы храните ссылки на эти файлы в ваших классах, их легко извлечь.
После загрузки файла вы получите URL файла, который можете сохранить в вашей базе данных. Затем вы можете отобразить или сослаться на этот файл в вашем html-шаблоне по мере необходимости.
Подтверждение электронной почты обеспечивает действительность адресов электронной почты, а сброс пароля помогает пользователям безопасно восстанавливать доступ к учетной записи.
- Перейдите в настройки электронной почты на панели управления Back4App.
- Включите подтверждение электронной почты и настройте шаблоны электронной почты.
- Включите сброс пароля для отправки ссылок на восстановление пароля на электронную почту пользователя.
После включения любой новый пользователь, регистрирующийся с электронной почтой, получает ссылку для подтверждения. Для сброса пароля вы можете вызывать встроенные методы Parse через REST или из ваших маршрутов Flask.
Облачные задания позволяют вам планировать фоновые задачи, такие как очистка данных или отправка периодических электронных писем. Например, вы можете удалять старые записи каждый день без вмешательства пользователя.
Затем, из вашей панели управления Back4App:
- Перейдите в настройки приложения > Настройки сервера > Фоновые задания.
- Запланируйте это задание для выполнения ежедневно или с вашим предпочтительным интервалом.
![Планирование облачного задания Планирование облачного задания](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Webhooks позволяют вашему приложению Back4app отправлять данные во внешние сервисы, когда происходят определенные триггеры. Это полезно для интеграции с платежными шлюзами, Slack, аналитикой или любыми сторонними сервисами.
- Перейдите к конфигурации Webhooks в вашей панели управления Back4App > Дополнительно > WebHooks.
- Добавьте новый Webhook.
- Выберите триггеры для которых будет срабатывать webhook.
![Добавление Webhook Добавление Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Если вы хотите уведомлять канал Slack каждый раз, когда создается новая запись в “Todo,” установите URL-адрес webhook Slack. Затем, каждый раз, когда новый Todo сохраняется, Slack будет получать POST-запрос с его деталями.
Приложение Back4App Admin App предоставляет удобный интерфейс для не технических членов вашей команды. Это ориентированный на модели интерфейс для операций CRUD и задач уровня предприятия.
- Перейдите в свою панель управления приложением.
- Выберите Дополнительно > Админ-приложение и включите его.
- Создайте администратора и выберите поддомен для размещения панели.
![Включите админ-приложение Включите админ-приложение](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/_2b71RLDTlQW468017saY_image.png?format=webp)
После включения вы можете войти с помощью своих учетных данных администратора, чтобы управлять данными более удобно — без написания пользовательских конечных точек или запросов в вашем коде Python.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
Следуя этому всестороннему руководству, вы:
- Создали безопасный бэкенд для приложения Flask на Back4App.
- Настроили базу данных с классами схем, типами данных и отношениями.
- Интегрировали запросы в реальном времени (Live Queries) для немедленных обновлений данных.
- Применили меры безопасности с использованием ACL и CLP для защиты и управления доступом к данным.
- Реализовали функции Cloud Code для выполнения пользовательской бизнес-логики на стороне сервера.
- Настроили аутентификацию пользователей с поддержкой проверки электронной почты и сброса паролей.
- Управляли загрузкой файлов и их извлечением, с дополнительными мерами безопасности для файлов.
- Запланировали Cloud Jobs для автоматизированных фоновых задач.
- Использовали Webhooks для интеграции с внешними сервисами.
- Изучили панель администратора Back4App для управления данными.
С надежным Flask бэкенд-фреймворком который может возвращать файлы шаблонов (если это необходимо) и с мощной настройкой Back4App, вы теперь готовы разрабатывать функциональные, масштабируемые и безопасные приложения.
Вы можете запустить свою команду flask run для старта разработческого сервера и продолжить кодирование.
Командная строка задачи становятся простыми с методы post def маршруты, которые принимают JSON-данные.
- Создайте приложение Flask, готовое к производству путем расширения этого бэкенда для обработки более сложных моделей данных, стратегий кэширования и оптимизации производительности.
- Интегрируйте расширенные функции такие как специализированные потоки аутентификации, контроль доступа на основе ролей или внешние API (например, платежные шлюзы).
- Посмотрите официальную документацию Back4app для более глубокого изучения вопросов безопасности, настройки производительности и анализа логов.
- Изучите другие учебные пособия по приложениям для чата в реальном времени, IoT-панелям или услугам на основе местоположения. Вы можете комбинировать техники, изученные здесь, с API третьих сторон для создания сложных, реальных приложений.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)