Quickstarters
Feature Overview
如何为 Python 构建后端?
37 分
介绍 在这个逐步教程中,您将学习如何使用 back4app 为 python 应用程序构建完整的后端。 我们将逐步整合 back4app 的基本功能——如数据库管理、云代码函数、rest 和 graphql api、用户身份验证以及实时查询——以创建一个安全、可扩展且强大的后端,与您的 python 代码无缝通信。 python 是后端开发中流行的编程语言选择,因为它提供了简单性和轻松维护服务器端的能力。 像 django、flask 等框架和库长期以来使 python 成为 web 开发过程的首选。 通过利用 back4app,python 开发人员可以快速设置数据库架构,确保数据完整性,甚至在不必管理复杂基础设施的情况下集成机器学习任务。 在此过程中,您将获得关键功能的实践经验,例如高级安全功能、使用云作业调度任务以及为外部集成设置 webhook。 在本教程结束时,您将为将此基础结构提升为生产就绪的 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/ parse python sdk 通过 pip 安装,使用 pip install parse rest 我们将使用此 sdk 进行数据交互。 熟悉基本的 python 概念 如果您是 python 新手,请查看 官方 python 文档 https //docs python org/3/ 或者初学者教程。 具备这些前提条件将确保您能够跟随我们一起探索如何在 back4app 上构建 python 后端。 步骤 1 – 设置 back4app 项目 创建新项目 在 back4app 上构建 python 后端的第一步是创建一个新项目。如果您还没有创建,请按照以下步骤操作 登录到您的 back4app 账户 点击您的 back4app 仪表板中的“新应用”按钮 给您的应用命名 (例如,“python backend tutorial”)。 一旦项目创建完成,您将在您的 back4app 控制面板中看到它列出。这个项目将是本教程中讨论的所有后端配置的基础。 连接 parse sdk back4app 依赖 parse 平台来管理您的数据,提供实时功能,处理用户身份验证等。 要将您的 python 代码连接到 back4app,您必须安装相关的 parse sdk,并使用您 back4app 控制面板中的凭据进行初始化。 检索您的 parse 密钥 在您的 back4app 控制面板中,导航到您应用的 应用设置 或 安全与密钥 部分以找到您的 应用程序 id 和 rest api 密钥 您还会找到 parse 服务器 url (通常是 https //parseapi back4app com )。 安装 parse rest python sdk pip install parse rest 在您的 python 脚本中初始化 parse 通常,您会在项目中创建一个文件(例如, 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) 这段代码确保每当您在 python 应用程序的其他地方导入您的 parse config 模块时,它已预先配置为连接到您的特定 back4app 实例。您现在已经在 python 代码和 back4app 后端之间建立了安全连接。 步骤 2 – 设置数据库 强大的数据库架构对于 python 后端开发至关重要。back4app 的数据管理功能让您可以定义表(类)、字段和关系,确保您可以轻松地在 python 网络框架或您选择的任何其他 python 库中存储和检索数据。 创建数据模型 back4app 在您第一次从代码保存对象时会自动创建类架构,或者您可以在仪表板中定义架构 导航到“数据库”部分 在您的 back4app 控制面板中。 创建一个新类 (例如,“待办事项”)并添加相关列,例如标题(字符串)和 iscompleted(布尔值)。 使用 ai 代理创建数据模型 back4app 的 ai 代理可以帮助您快速创建数据库架构: 从您的应用程序仪表板打开 ai 代理 用自然语言描述您的数据模型 (例如,“创建一个带有完整类架构的待办事项应用。”)。 让 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 服务器设置 中。 使用 python websocket 方法 订阅更改。尽管实时查询的 python sdk 是社区驱动的,但如果你的应用需要实时更新,你可以集成一个 websocket 库。 步骤 3 – 使用 acl 和 clp 应用安全性 简要概述 back4app 提供了 访问控制列表 (acls) 和 类级权限 (clps) 来帮助你确保数据完整性。这些功能定义了公共用户或经过身份验证的用户如何访问或修改数据。 设置类级权限 前往你的 back4app 控制面板 , 选择你的应用,并打开 数据库 部分。 选择一个类 (例如,“待办事项”)。 前往类级权限 并为公共或经过身份验证的用户配置规则。 在代码中配置 acls 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 }; }); 您可以使用 python 的 rest 或 graphql 功能调用此函数: 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 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 社交登录 您可以通过配置 oauth 流或使用专用适配器来集成流行的提供商(如 facebook 或 google)。有关如何在您的 python 项目中设置这些功能的更多详细信息,请参阅 社交登录文档 https //www back4app com/docs/platform/sign in with apple 第 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') 示例 您可以通过存储其 url 将此文件附加到 parse 对象。这可以保持您的数据一致,同时您的媒体安全地托管在 back4app 上。 安全考虑 您可以通过配置 parse 服务器设置来控制谁可以上传或访问文件,例如,仅允许经过身份验证的用户。这种方法确保您的生产 python 应用程序保持安全。 步骤 7 – 电子邮件验证和密码重置 概述 电子邮件验证和密码重置对于用户管理至关重要。它们有助于确认用户身份并维护账户安全。 back4app 仪表板配置 启用电子邮件验证 在 应用设置 > 电子邮件设置 配置 电子邮件模板,例如“发件人”地址和密码重置说明。 代码实现 从 python 中,您可以通过 rest 端点或解析库触发密码重置电子邮件。例如: 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 – 集成 webhooks 定义 webhooks 允许你的 back4app 应用在某些事件发生时通知外部服务。这对于与支付网关或分析平台集成非常有用,扩展你的开发流程。 配置 导航 到 webhooks 在您的 back4app 控制面板中。 添加一个新的 webhook 端点 (例如, https //your service com/webhook endpoint )。 选择 触发 webhook 的事件(例如,对象创建或更新)。 您还可以在 cloud code 触发器中定义 webhooks,如 beforesave 或 aftersave 以将数据发布到外部 api。 步骤 10 – 探索 back4app 管理面板 在哪里找到它 “ back4app 管理应用 ”是一个基于网络的管理界面。它使您的团队能够执行 crud 操作、管理数据,并处理日常任务,而无需编写额外的代码。这可以简化您的 python 后端开发过程。 功能 启用 管理员应用程序从 应用仪表板 > 更多 > 管理员应用程序 并按照步骤进行操作: 创建第一个管理员用户。一个新的角色 ( b4aadminuser ) 和类会自动添加到您的架构中。 选择一个子域名作为您的管理员界面并完成设置。然后登录以访问您的新管理员应用程序。 管理员应用程序使更新或删除记录和管理数据变得简单。通过适当的访问控制,与项目经理或利益相关者共享是安全的。 结论 通过遵循本指南,了解如何构建 python 的后端,您已经 创建了一个安全的后端 用于 back4app 上的 python 应用程序。 配置了一个数据库 具有灵活的模式和关系。 实现了实时查询 以便即时数据更新(可选使用实时查询)。 应用了安全措施 使用 acl 和 clp 来保护数据。 编写了云代码 使用 javascript 处理服务器端逻辑,易于从 python 调用。 设置了用户身份验证 具有电子邮件验证和密码重置流程。 处理文件上传 在您的 python 代码中,具有可选的文件安全性。 安排定期任务 用于自动化任务。 集成外部服务 使用 webhook。 探索了管理面板 用于数据管理和协作。 凭借坚实的 python 代码库和强大的 back4app 后端,您现在可以处理高级数据结构,结合 django 和 flask 等框架,甚至集成机器学习。 python 提供了无数的可能性,将其与 back4app 结合意味着您可以快速迭代,同时专注于核心业务逻辑,而不是服务器维护。 下一步 构建一个生产就绪的 python 应用 通过优化您的数据库架构、添加缓存和管理性能优化。 探索高级功能 如基于角色的访问控制、高级日志记录或连接第三方 api 进行分析。 查看 back4app 的官方文档 以深入了解安全性、性能调优和日志分析。 尝试使用 docker 和 kubernetes 等工具 根据需要对您的应用进行容器化和扩展。 通过利用 python 强大的库和 back4app 可扩展的基础设施,您可以自信地加速后端开发之旅。