Quickstarters
Feature Overview
How to Build a Backend for Python?
40 мин
введение в этом пошаговом руководстве вы научитесь создавать полный бэкенд для приложений на python с использованием back4app мы пройдем через интеграцию основных функций back4app — таких как управление базами данных, функции облачного кода, rest и graphql api, аутентификация пользователей и запросы в реальном времени — чтобы создать безопасный, масштабируемый и надежный бэкенд, который бесшовно взаимодействует с вашим кодом на python python является популярным выбором среди языков программирования для разработки бэкенда, потому что он предлагает простоту и возможность легко поддерживать серверную часть фреймворки и библиотеки, такие как django, flask и другие, давно сделали python основным инструментом для процессов веб разработки используя back4app, разработчик на python может быстро настроить схему базы данных, обеспечить целостность данных и даже включить задачи машинного обучения, не управляя сложной инфраструктурой в процессе вы получите практический опыт с ключевыми функциональными возможностями, такими как расширенные функции безопасности, планирование задач с помощью облачных заданий и настройка вебхуков для внешних интеграций к концу этого руководства вы будете хорошо подготовлены, чтобы улучшить эту базовую структуру до готового к производству приложения на python или легко интегрироваться с другими инструментами, такими как docker и kubernetes, по мере масштабирования вашего проекта это даст старт вашему пути в разработке бэкенда на python, используя надежную платформу и мощные библиотеки python предварительные условия для завершения этого учебника вам понадобятся учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app зарегистрируйтесь бесплатно, если вы еще этого не сделали, и создайте новый проект установленный python 3 x убедитесь, что у вас установлен python 3 x на вашем компьютере скачать python https //www python org/downloads/ sdk parse для python установите через pip с помощью pip install parse rest мы будем использовать этот sdk для взаимодействия с данными знание основных концепций python если вы новичок в python, ознакомьтесь с официальной документацией python https //docs python org/3/ или учебником для начинающих наличие этих предварительных условий обеспечит вам возможность следовать за нами, когда мы будем изучать, как создать бэкенд для python на back4app шаг 1 – настройка проекта back4app создание нового проекта первый шаг в создании вашего бэкенда на python на back4app – это создание нового проекта если вы еще не создали проект, выполните следующие шаги войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления back4app дайте вашему приложению имя (например, “python backend tutorial”) после создания проекта вы увидите его в своем дашборде back4app этот проект станет основой для всех конфигураций бэкенда, обсуждаемых в этом руководстве подключите parse sdk back4app полагается на платформу parse для управления вашими данными, предоставления функций в реальном времени, обработки аутентификации пользователей и многого другого чтобы подключить ваш код на python к back4app, вам необходимо установить соответствующий parse sdk и инициализировать его с помощью учетных данных из вашего дашборда back4app получите ваши ключи parse в вашем дашборде back4app перейдите в раздел настройки приложения или безопасность и ключи чтобы найти ваш идентификатор приложения и ключ rest api вы также найдете url сервера parse (часто https //parseapi back4app com ) установите parse rest python sdk pip install parse rest инициализируйте parse в вашем python скрипте обычно вы создаете файл (например, parse config py ) в вашем проекте parse config py # parse config py from parse rest connection import register \# replace the placeholders with your back4app credentials application id = "your application id" rest api key = "your rest api key" parse server url = "https //parseapi back4app com" \# the register function initializes the connection register(application id, rest api key, master key=none) этот код гарантирует, что каждый раз, когда вы импортируете ваш parse config модуль в другом месте вашего python приложения, он предварительно настроен для подключения к вашему конкретному экземпляру back4app вы теперь установили безопасное соединение между вашим python кодом и бэкендом back4app шаг 2 – настройка базы данных надежная схема базы данных необходима для разработки бэкенда на python функции управления данными back4app позволяют вам определять таблицы (классы), поля и отношения, что обеспечивает легкое хранение и извлечение данных в вашем веб фреймворке на python или любых других библиотеках python, которые вы выберете создание модели данных back4app автоматически создает схемы классов, когда вы впервые сохраняете объект из кода, или вы можете определить схему в панели управления перейдите в раздел “база данных” в вашей панели управления back4app создайте новый класс (например, “todo”) и добавьте соответствующие столбцы, такие как заголовок (string) и iscompleted (boolean) создание модели данных с помощью ai агента ai агент back4app может помочь вам быстро создать схему базы данных откройте ai агента из вашей панели управления приложением опишите вашу модель данных на естественном языке (например, “создайте приложение todo с полной схемой класса ”) позвольте ai агенту автоматически сгенерировать вашу схему чтение и запись данных с использованием python parse sdk как только ваша схема готова, сохранение и запрос данных становится простым например models py from parse rest datatypes import object import parse config # ensure parse config is imported class todo(object) pass def create todo item(title, is completed=false) new todo = todo(title=title, iscompleted=is completed) new todo save() print("todo saved successfully ", new todo objectid) def fetch todos() return todo query all() \# usage \# create todo item("buy groceries", false) \# results = fetch todos() \# for todo in results \# print(todo title, todo iscompleted) чтение и запись данных с использованием rest api если вы предпочитаете взаимодействовать через rest, вы можете отправлять запросы напрямую curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo чтение и запись данных с использованием graphql api back4app также предоставляет конечную точку graphql для запроса и изменения данных mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } работа с живыми запросами (по желанию) живые запросы позволяют вам получать обновления в реальном времени, когда данные изменяются чтобы включить их включите живые запросы в ваших back4app настройках сервера используйте подход websocket на python для подписки на изменения хотя sdk python для живых запросов управляется сообществом, вы можете интегрировать библиотеку websocket, если ваше приложение требует обновлений в реальном времени шаг 3 – применение безопасности с помощью acl и clp краткий обзор back4app предоставляет списки контроля доступа (acl) и разрешения на уровне класса (clp) для обеспечения целостности данных эти функции определяют, как публичные пользователи или аутентифицированные пользователи могут получать доступ или изменять данные настройка разрешений на уровне класса перейдите в вашу панель управления back4app , выберите ваше приложение и откройте раздел база данных выберите класс (например, “todo”) перейдите к разрешениям на уровне класса и настройте правила для публичных или аутентифицированных пользователей настройка acl в коде acl это детализированные разрешения, установленные на отдельные объекты например from parse rest datatypes import object, acl from parse rest user import user import parse config class todoacl(object) pass def create private todo(title, owner) todo = todoacl(title=title) \# create acl that allows only the owner read/write acl = acl() acl set read access(owner objectid, true) acl set write access(owner objectid, true) todo acl = acl todo save() return todo с помощью acl и clp вы можете найти баланс между безопасностью и удобством при создании ваших приложений на python шаг 4 – написание функций облачного кода почему облачный код облачный код позволяет вам перенести важную бизнес логику на серверную сторону это может включать валидации, триггеры или сложные задачи, такие как интеграция инструментов машинного обучения или внешних api с вашей разработкой на python пример функции вы можете написать свои функции в main js (облачный код на основе javascript) на back4app обратите внимание, что хотя вы разрабатываете свое приложение на python, среда облачного кода на back4app использует node js/javascript вы можете вызывать эти функции из вашего кода на python или любого другого клиента // main js parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw new error("no text provided"); } return { length text length }; }); вы можете вызвать эту функцию, используя возможности rest или graphql python import requests def get text length(text) url = "https //parseapi back4app com/functions/calculatetextlength" headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" "application/json" } response = requests post(url, headers=headers, json={"text" text}) data = response json() return data get("result", {}) \# usage length info = get text length("hello back4app") print(length info get("length")) развертывание и npm cloud code back4app развертывается с использованием back4app cli https //www back4app com/docs/local development/parse cli , или через панель управления вы можете устанавливать пакеты npm (например, для манипуляции данными, внешних api вызовов) и ссылаться на них в вашем main js этот подход делает ваш код эффективным и безопасным на стороне сервера шаг 5 – настройка аутентификации включите или настройте аутентификацию пользователей back4app использует класс parse user для аутентификации это автоматически обрабатывает хеширование паролей, токены сессий и многое другое вы можете управлять регистрацией, входом или сбросом пароля с минимальными затратами регистрация и вход из python from parse rest user import user import parse config def sign up user(username, password, email) new user = user signup(username, password, email=email) print("user signed up successfully ", new user objectid) return new user def log in user(username, password) logged user = user login(username, password) print("user logged in ", logged user username) return logged user сессии автоматически обрабатываются parse вы можете отслеживать вошедшего пользователя и вызывать logout() по мере необходимости для получения дополнительной информации обратитесь к официальной документации по классу пользователей https //www back4app com/docs/platform/users социальный вход вы можете интегрировать популярных провайдеров (таких как facebook или google), настроив oauth потоки или используя специализированные адаптеры обратитесь к документации по социальному входу https //www back4app com/docs/platform/sign in with apple для получения дополнительной информации о настройке этих функций в вашем проекте на python шаг 6 – обработка хранения файлов настройка хранения файлов платформа parse включает в себя нативное хранение файлов import requests import parse config def upload file(file path) file name = file path split('/')\[ 1] url = f"https //parseapi back4app com/files/{file name}" headers = { "x parse application id" "your app id", "x parse rest api key" "your rest api key", "content type" "image/jpeg" # or other mime type } with open(file path, 'rb') as f response = requests post(url, headers=headers, data=f) return response json() get('url') пример вы можете прикрепить этот файл к объекту parse, сохранив его url это позволяет поддерживать согласованность ваших данных, пока ваши медиафайлы безопасно размещены на back4app соображения безопасности вы можете контролировать, кто может загружать или получать доступ к файлам, настроив параметры вашего сервера parse так, чтобы разрешить доступ только аутентифицированным пользователям, например этот подход гарантирует, что ваши производственные приложения на python остаются безопасными шаг 7 – подтверждение электронной почты и сброс пароля обзор подтверждение электронной почты и сброс паролей имеют решающее значение для управления пользователями они помогают подтвердить личность пользователей и поддерживать безопасность учетных записей конфигурация панели управления back4app включите подтверждение электронной почты в настройках приложения > настройки электронной почты настройте шаблоны электронной почты, такие как адрес "от", и инструкции по сбросу пароля реализация кода из python вы можете инициировать отправку писем для сброса пароля через rest эндпоинт или библиотеки parse например curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "user\@example com"}' \\ https //parseapi back4app com/requestpasswordreset это обеспечивает бесшовный процесс сброса пароля непосредственно из вашего бэкенда на python или любого другого интерфейса шаг 8 – планирование задач с помощью облачных заданий что делают облачные задания облачные задания позволяют автоматизировать задачи, такие как очистка старых записей или генерация периодических отчетов они выполняются на инфраструктуре back4app через заданные интервалы пример в вашем main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); вы можете запланировать эту задачу на выполнение ежедневно или еженедельно, используя раздел фоновые задачи на панели управления back4app шаг 9 – интеграция вебхуков определение вебхуки позволяют вашему приложению back4app уведомлять внешние сервисы, когда происходят определенные события это полезно для интеграции с платежными шлюзами или аналитическими платформами, расширяя ваши процессы разработки конфигурация перейдите к webhooks в вашей панели управления back4app добавьте новую точку доступа вебхука (например, https //your service com/webhook endpoint ) выберите события, которые вызывают вебхук (например, создание или обновление объекта) вы также можете определить вебхуки в триггерах cloud code, таких как beforesave или aftersave для отправки данных на внешние api шаг 10 – изучение панели администратора back4app где это найти приложение back4app admin app является веб интерфейсом управления оно позволяет вашей команде выполнять операции crud, управлять данными и решать повседневные задачи без написания дополнительного кода это может упростить процесс разработки вашего python бэкенда особенности включите админ приложение из панели приложений > дополнительно > админ приложение , и следуйте инструкциям создайте первого администратора новая роль ( b4aadminuser ) и классы автоматически добавляются в вашу схему выберите поддомен для вашего административного интерфейса и завершите настройку затем войдите, чтобы получить доступ к вашему новому админ приложению админ приложение упрощает обновление или удаление записей и управление вашими данными с правильными контролями доступа его безопасно делиться с менеджерами проектов или заинтересованными сторонами заключение следуя этому руководству о как создать бэкенд для python , вы создали безопасный бэкенд для приложений на python на back4app настроили базу данных с гибкими схемами и отношениями реализовали запросы в реальном времени для мгновенных обновлений данных (опционально с live queries) применили меры безопасности с acl и clp для защиты данных написали cloud code на javascript для обработки логики на стороне сервера, легко вызываемой из python настроили аутентификацию пользователей с проверкой электронной почты и сбросом пароля обработали загрузку файлов в вашем python коде с опциональной безопасностью файлов запланировали периодические задачи для автоматизированных задач интегрировали внешние сервисы с использованием вебхуков изучили панель администратора для управления данными и сотрудничества с надежной кодовой базой на python и мощным бэкендом back4app, вы теперь готовы справляться с продвинутыми структурами данных, интегрировать такие фреймворки, как django и flask, и даже внедрять машинное обучение python предлагает бесконечные возможности, а сочетание его с back4app означает, что вы можете быстро итеративно работать, сосредоточившись на основной бизнес логике, а не на обслуживании сервера следующие шаги создайте готовое к производству приложение на python путем уточнения схемы базы данных, добавления кэширования и управления оптимизацией производительности изучите расширенные функции такие как управление доступом на основе ролей, расширенное ведение журналов или подключение сторонних api для аналитики просмотрите официальную документацию back4app для более глубокого понимания безопасности, настройки производительности и анализа журналов экспериментируйте с инструментами, такими как docker и kubernetes чтобы контейнеризировать и масштабировать ваше приложение по мере необходимости используя мощные библиотеки python и масштабируемую инфраструктуру back4app, вы можете уверенно ускорить свой путь разработки бэкенда