Quickstarters
Feature Overview
How to Build a Backend for Django?
40 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для django с использованием мощной платформы back4app на базе ии django — это высокоуровневый веб фреймворк, который способствует быстрому развитию бэкенда и чистому, прагматичному дизайну мы создадим масштабируемый и безопасный бэкенд, который бесшовно интегрируется с вашим проектом на django используя back4app, вы можете воспользоваться автоматизированным управлением базами данных, мощными api, хранением файлов, аутентификацией пользователей, валидацией данных, возможностями в реальном времени и расширенными функциями безопасности вы увидите, как среда back4app автоматически генерирует серверную инфраструктуру, позволяя вам сосредоточиться на бизнес логике вашего приложения на django этот подход сокращает время разработки, устраняя необходимость вручную настраивать серверы и базы данных к концу этого учебного пособия у вас будет надежная структура для ваших веб приложений, которую можно расширить более сложными функциями, интеграциями и пользовательской логикой предварительные требования учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, вы можете создать ее бесплатно следуйте приведенному выше руководству, чтобы подготовить ваш проект проект django, настроенный локально убедитесь, что у вас есть рабочая среда django если вы начинаете с нуля, следуйте официальной документации django https //docs djangoproject com/en/4 2/intro/install/ подтвердите, что структура installed apps и основные представления и шаблоны готовы установлен python 3 7+ вам потребуется современная среда python для вашего приложения django знание архитектуры model view django и основных операций crud если вы новичок в django или хотите освежить свои знания, ознакомьтесь с документацией django https //docs djangoproject com/en/4 2/ наличие этих предварительных требований обеспечит более плавный процесс, когда вы будете следовать этому руководству шаг 1 – создание нового проекта на back4app и подключение почему вам нужен проект back4app новый проект на back4app является основой вашей разработки бэкенда он предоставляет вам возможности parse server, инструменты базы данных и мощный интерфейс администратора эта центральная структура позволяет вам разгрузить управление сервером и сосредоточиться на бизнес логике вашего приложения django создать новый проект войдите в свою учетную запись back4app нажмите кнопку “новое приложение” в вашей панели управления back4app назовите ваше приложение (например, “django backend tutorial”) после создания ваше приложение появится в вашей панели управления back4app этот новый проект — это место, где мы будем хранить данные, управлять правилами безопасности и запускать серверный код для вашего приложения django установка parse python sdk чтобы подключить ваш проект django к back4app, мы будем использовать parse python sdk он позволяет вам обрабатывать операции с данными, аутентификацию пользователей, функции в реальном времени и многое другое из вашего python кода получите ваши ключи приложения в панели управления back4app перейдите в настройки приложения или безопасность и ключи чтобы найти ваш идентификатор приложения и ключ клиента (или ключ rest ) и url адрес сервера parse (например, https //parseapi back4app com ) установите sdk pip install parse rest инициализируйте parse в вашем проекте django например, создайте новый файл с именем parse config py внутри каталога вашего основного приложения django (в той же папке, что и views py или models py ) \# parse config py from parse rest connection import register application id = "your application id" rest api key = "your rest api key" parse server url = "https //parseapi back4app com" \# register your app with parse register(application id, rest api key, master key=none, endpoint=parse server url) с этой конфигурацией любой файл в вашем проекте django может импортировать parse config для обеспечения соединения с вашим бэкендом back4app теперь вы можете запрашивать и сохранять данные из вашего кода django, используя parse python sdk шаг 2 – настройка базы данных 1\ создание модели данных так же, как django использует модели для хранения данных в реляционной базе данных, parse использует классы для хранения объектов вы можете создавать классы в панели управления back4app или определять их на лету в панели управления back4app перейдите к база данных нажмите создать класс назовите его (например, “список дел”), затем добавьте поля, такие как title (строка) и iscompleted (булевый) 2\ использование ai агента для автоматической генерации модели данных ai агент back4app может помочь вам автоматически сгенерировать схему откройте ai агента в панели управления вашим приложением опишите вашу модель данных (например, “схема приложения список дел с полями title, iscompleted и указателем на пользователя ”) позвольте ai агенту создать ее для вас это может сэкономить время, особенно если ваше приложение django требует сложных отношений или продвинутой валидации данных 3\ чтение и запись данных с использованием parse sdk ниже приведен пример создания и запроса объекта todo из вашего проекта django \# views py from parse config import from parse rest datatypes import object class todo(object) pass def create todo item(title, is completed=false) todo = todo(title=title, iscompleted=is completed) todo save() # this performs the crud operation to save data in back4app def get all todos() return todo query all() # retrieves all todo objects from back4app вы можете вызывать эти функции из ваших представлений django или оболочки эта настройка работает в тандеме с логикой вашего приложения django, поэтому ваш веб фреймворк остается полностью интегрированным с бэкендом parse 4\ чтение и запись данных с использованием rest api если вы предпочитаете rest, вот как создать объект todo 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 5\ чтение и запись данных с использованием graphql api back4app также предоставляет интерфейс graphql например mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } это полезно, если вы хотите интегрировать запросы graphql в ваши представления django или микросервисы как часть современной архитектуры данных 6\ работа с живыми запросами (по желанию) для обновлений в реальном времени вы можете включить живые запросы в панели управления back4app в данный момент официальный parse python sdk может иметь ограниченную поддержку живых запросов тем не менее, вы все равно можете подписаться на изменения через websockets или другие подходы, если это необходимо проверьте документацию back4app https //www back4app com/docs для получения последних обновлений о живых запросах python шаг 3 – применение безопасности с помощью acl и clp 1\ краткий обзор используйте списки контроля доступа (acl) и разрешения на уровне класса (clp) для защиты ваших данных acl контролируют права на чтение/запись для каждого объекта, в то время как clp применяются ко всему классу 2\ пошагово настройка разрешений на уровне класса перейдите в раздел база данных в back4app выберите класс (например, todo ) настройте доступ на чтение/запись или требуйте входа в систему настройка acl в коде это гарантирует, что ваш проект django соблюдает те же детализированные правила безопасности, установленные в back4app шаг 4 – написание функций облачного кода 1\ почему облачный код с помощью облачного кода вы выполняете бизнес логику на стороне сервера например, вы можете выполнять валидацию данных, интегрировать внешние api или вызывать события перед сохранением данных это мощное дополнение к вашим представлениям и шаблонам django, позволяющее централизовать сложную логику в одном месте 2\ пример функции cloud code обычно пишется на javascript вы развертываете его на back4app, а затем вызываете из вашего приложения django через parse python sdk или rest запросы простая функция // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); 3\ развертывание используйте back4app cli или панель управления разверните ваш main js с облачными функциями после развертывания они становятся доступными для вашего кода django через from parse config import import requests def call calculate text length(text) url = "https //parseapi back4app com/functions/calculatetextlength" headers = { "x parse application id" application id, "x parse rest api key" rest api key, "content type" "application/json" } payload = {"text" text} response = requests post(url, json=payload, headers=headers) return response json() 4\ npm если вам нужны внешние модули node в вашем cloud code, объявите их в файле package json back4app автоматически устанавливает их при развертывании шаг 5 – настройка аутентификации 1\ включите или настройте аутентификацию пользователей по умолчанию parse включает класс user для регистрации и входа настройте проверку электронной почты, сброс пароля и многое другое в панели управления back4app 2\ примеры кода django \# models py or a separate file from parse config import from parse rest user import user def register user(username, password, email) new user = user signup(username, password, email=email) return new user def login user(username, password) return user login(username, password) 3\ социальный вход если вам нужны входы через google, apple или facebook, настройте их в auth settings панели back4app и следуйте соответствующим руководствам ваше приложение django затем может связывать или входить в систему пользователей, вызывая соответствующие методы parse шаг 6 – обработка хранения файлов 1\ настройка файлового хранилища back4app безопасно хранит файлы, загруженные через parse sdk вы можете загружать из django, отправляя файл в поле parse file from parse rest datatypes import object, file class photo(object) pass def upload image(file path) with open(file path, 'rb') as f parse file = file(file path, f read()) photo = photo(imagefile=parse file) photo save() return photo 2\ пример если вы хотите добавить изображения, загруженные пользователями, интегрируйте \<input type="file"> в ваши шаблоны django, а затем обработайте файл в функции представления, которая вызывает upload image() 3\ соображения безопасности parse предоставляет конфигурацию, которая контролирует, кто может загружать файлы { "fileupload" { "enableforpublic" true, "enableforanonymoususer" true, "enableforauthenticateduser" true } } настройте эти параметры в соответствии с вашими потребностями в безопасности, чтобы гарантировать, что только доверенные пользователи могут хранить и получать доступ к конфиденциальным файлам шаг 7 – подтверждение электронной почты и сброс пароля 1\ обзор интерфейс администратора django обрабатывает многие вещи, но для вашего бэкенда на базе parse вы также можете включить подтверждение электронной почты и сброс паролей это жизненно важно для проверки реальных пользователей и обеспечения плавного пути восстановления учетной записи 2\ конфигурация панели управления откройте ваше приложение back4app включите подтверждение электронной почты в настройках приложения > настройках электронной почты настройте шаблоны электронной почты в соответствии с вашим брендингом 3\ код/реализация в вашем приложении django вы можете предложить форму сброса пароля когда пользователь запрашивает сброс, вызовите конечную точку сброса пароля parse или соответствующий метод python, если он поддерживается в sdk шаг 8 – планирование задач с помощью облачных заданий 1\ что делают облачные задания облачные задания позволяют вам выполнять автоматизированные задачи, такие как очистка старых данных или генерация отчетов это дополняет crontab или celery рабочие процессы django, централизуя задачи в среде back4app 2\ пример // 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); после развертывания запланируйте его в дашборде back4app в разделе настройки сервера > фоновые задачи для выполнения ежедневно или еженедельно шаг 9 – интеграция вебхуков 1\ определение вебхуки позволяют вам отправлять http запросы во внешние сервисы, когда определенные события происходят в ваших классах back4app например, уведомляйте канал slack или платежный сервис каждый раз, когда создается новая запись 2\ конфигурация перейдите в разное > вебхуки в дашборде настройте вашу внешнюю конечную точку (например, url в вашем проекте django) определите триггеры (например, “объект создан” в todo ) 3\ пример каждый раз, когда создается новая задача, post запрос отправляется на конечную точку вашего приложения django в django вы бы разобрали json данные и обработали их (например, записали в журнал или произвели дальнейшую обработку) шаг 10 – изучение панели администратора back4app 1\ где это найти приложение back4app admin app находится в вашей консоли в разделе еще > админ приложение это интерфейс, ориентированный на модели, для управления вашими данными без написания кода 2\ функции база данных быстро просматривайте, редактируйте или удаляйте записи логи мониторьте ошибки или журналы процессов фоновые задачи управляйте расписанием ваших облачных задач аналитика и уведомления если это актуально для вашего приложения, получайте доступ к уведомлениям и данным аналитики это похоже на собственный админ интерфейс , но сосредоточено на бэкенде parse заключение следуя этому руководству, вы узнали, как создать бэкенд для django с использованием back4app вы создали безопасную и масштабируемую структуру бэкенда для вашего приложения django настроили модель данных, выполнили операции crud и использовали функции в реальном времени реализовали acl, clp и аутентификацию пользователей для высокого уровня безопасности использовали cloud code для бизнес логики, валидации данных и внешних интеграций хранили файлы, планировали cloud jobs и настраивали webhooks для сложных рабочих процессов изучили приложение back4app admin для эффективного управления вашими данными с этой основой вы можете уверенно расширять свой проект django интегрируйте продвинутые функции, оптимизируйте производительность и добавляйте пользовательскую логику для решения задач уровня предприятия продолжайте экспериментировать с parse python sdk, чтобы создавать мощные веб приложения удачного кодирования! следующие шаги создайте готовое к производству приложение django с продвинутым кэшированием, ролями пользователей и оптимизацией производительности используйте более продвинутые функции back4app такие как продвинутая аналитика или контроль доступа на основе ролей учитесь по официальной документации back4app для более глубокого понимания логов, запросов в реальном времени и оптимизации данных изучите другие учебники чтобы увидеть, как вы можете объединить мощные «представления и шаблоны» django с внешними api и м