Quickstarters
Feature Overview
如何为Django构建后端?
38 分
介绍 在本教程中,您将学习 如何使用 back4app 强大的 ai 驱动平台构建 django 的后端 。 django 是一个高级 web 框架,鼓励快速的后端开发和干净、务实的设计。 我们将创建一个可扩展和安全的后端,与您的 django 项目无缝集成。 通过使用 back4app,您可以利用自动化数据库管理、强大的 api、文件存储、用户身份验证、数据验证、实时功能和高级安全特性。 您将看到 back4app 的环境自动生成服务器基础设施,让您专注于 django 应用程序的业务逻辑。 这种方法通过消除手动设置服务器和数据库的需要来缩短开发时间。 在本教程结束时,您将拥有一个强大的 web 应用程序结构,可以扩展更多复杂的功能、集成和自定义逻辑。 前提条件 一个 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 应用。 熟悉 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 仪表板中,转到 应用设置 或 安全与密钥 找到您的 应用程序 id 和 客户端密钥 (或 rest 密钥 ) 和 parse 服务器 url (例如, https //parseapi back4app com )。 安装 sdk pip install parse rest 在你的 django 项目中初始化 parse 。例如,创建一个名为 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 后端的连接。你现在可以使用 parse python sdk 从你的 django 代码中查询和保存数据。 步骤 2 – 设置数据库 1\ 创建数据模型 就像 django 使用模型在关系数据库中存储数据一样,parse 使用类来存储对象。你可以在 back4app 仪表板中创建类,或者动态定义它们。 在 back4app 控制面板中 导航到 数据库 点击 创建一个类 命名它(例如,“待办事项”),然后添加字段,如 标题 (字符串)和 iscompleted (布尔值)。 2\ 使用 ai 代理自动生成数据模型 back4app 的 ai 代理可以帮助您自动生成架构: 在您的应用程序控制面板中打开 ai 代理 描述您的数据模型 (例如,“一个包含标题、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 视图或 shell 中调用这些函数。这个设置与您的 django 应用逻辑协同工作,因此您的 web 框架与 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 } } } 如果您想在 django 视图或微服务中集成 graphql 查询,作为现代数据架构的一部分,这非常有用。 6\ 使用实时查询(可选) 要进行实时更新,您可以在 back4app 仪表板中 启用实时查询 。目前,官方的 parse python sdk 可能对实时查询的直接支持有限。然而,如果需要,您仍然可以通过 websockets 或其他方法订阅更改。请查看 back4app 文档 https //www back4app com/docs 以获取有关 python 实时查询的最新更新。 步骤 3 – 使用 acl 和 clp 应用安全性 1\ 简要概述 使用 访问控制列表 (acls) 和 类级权限 (clps) 来保护您的数据。acl 控制每个对象的读/写权限,而 clp 适用于整个类。 2\ 步骤 设置类级别权限 前往 数据库 部分在 back4app 选择类(例如, 待办事项 )。 调整 读取/写入 访问或要求登录 在代码中配置 acls 这确保您的 django 项目遵循在 back4app 中设置的相同细粒度安全规则。 步骤 4 – 编写云代码函数 1\ 为什么使用云代码 使用云代码,您可以在服务器端运行 业务逻辑 。例如,您可以执行数据验证、集成外部 api,或在保存数据之前触发事件。这是对您的 django 视图和模板的强大补充,让您能够将高级逻辑集中在一个地方。 2\ 示例函数 云代码 通常用javascript编写。您将其部署到back4app,然后通过parse python sdk或rest请求从django应用程序调用它。一个简单的函数: // 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模块,请在云代码目录的 package json back4app会在部署时自动安装它们。 步骤 5 – 配置身份验证 1\ 启用或设置用户身份验证 默认情况下,parse 包含 用户 类用于注册和登录。在 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 登录,请在 身份验证设置 中配置它们,并遵循相应的指南。然后,您的 django 应用可以通过调用相关的 parse 方法来链接或登录用户。 步骤 6 – 处理文件存储 1\ 设置文件存储 back4app 安全地存储通过 parse sdk 上传的文件。您可以通过将文件发送到 parse 文件字段从 django 上传文件: 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\ 示例 如果您想添加用户上传的图像,请在您的 django 模板中集成一个 \<input type="file"> ,然后在调用 upload image() 的视图函数中处理该文件。 3\ 安全考虑 parse 提供了一个配置,控制谁可以上传文件: { "fileupload" { "enableforpublic" true, "enableforanonymoususer" true, "enableforauthenticateduser" true } } 根据您的安全需求调整这些设置,确保只有受信任的用户可以存储和访问敏感文件。 第 7 步 – 电子邮件验证和密码重置 1\ 概述 django 的 管理界面 处理许多事情,但对于您的 parse 驱动的后端,您还可以启用电子邮件验证和密码重置。这对于验证真实用户和提供顺畅的账户恢复路径至关重要。 2\ 仪表板配置 打开您的 back4app 应用 启用电子邮件验证 在 应用设置 > 电子邮件设置 自定义 电子邮件模板以匹配您的品牌 3\ 代码/实现 在您的 django 应用中,您可能会提供一个密码重置表单。当用户请求重置时,调用 parse 的密码重置端点或 sdk 中支持的相应 python 方法。 步骤 8 – 使用云作业调度任务 1\ 云作业的功能 云作业 让您运行自动化任务,例如清理旧数据或生成报告。这补充了 django 的 crontab 或 celery 工作流,通过将任务集中在 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 – 集成 webhooks 1\ 定义 webhooks 让您在 back4app 类中发生某些事件时向外部服务发送 http 请求。例如,每当创建新记录时,通知 slack 频道或支付服务。 2\ 配置 在仪表板中转到更多 > webhooks 。 设置您的外部端点 (例如,您 django 项目中的 url)。 定义触发器 (如 “对象创建” 在 todo )。 3\ 示例 每当创建新的 todo 时,post 请求会发送到您 django 应用的端点。在 django 中,您将解析 json 数据并处理它(例如,记录或进一步处理)。 步骤 10 – 探索 back4app 管理面板 1\ 在哪里找到它 “ back4app 管理应用 ”在您的控制台下找到“ 更多 > 管理应用 ”。这是一个以模型为中心的界面,可以在不编写代码的情况下管理您的数据。 2\ 功能 数据库 快速查看、编辑或删除记录。 日志 监控错误或处理日志。 后台作业 管理您的云作业计划。 分析与推送 如果与您的应用相关,访问推送通知和分析数据。 这类似于 django 自己的 “ 管理界面 ”,但专注于 parse 后端。 结论 通过遵循本指南,您已经学习了如何使用 back4app 为 django 构建后端。您已经: 为您的 django 应用创建了一个安全且可扩展的后端结构。 设置了数据模型,执行了 crud 操作,并利用了实时功能。 实现了 acl、clp 和用户身份验证以确保高级安全性。 使用云代码进行业务逻辑、数据验证和外部集成。 存储文件,调度云作业,并配置 webhook 以实现高级工作流。 探索 back4app 管理应用以有效管理您的数据。 有了这个基础,您可以自信地扩展您的 django 项目。集成高级功能,优化性能,并添加自定义逻辑以处理企业级需求。 继续使用 parse python sdk 进行实验,以交付强大的 web 应用程序。祝您编码愉快! 下一步 构建一个生产就绪的 django 应用 ,具有高级缓存、用户角色和性能调整。 利用更多高级的 back4app 功能 ,例如高级分析或基于角色的访问控制。 从官方 back4app 文档中学习 以深入了解日志、实时查询和数据优化。 探索其他教程 以了解如何将 django 强大的“视图和模板”与外部 api 和 m 结合起来。