关于服务
翻译我使用 Flask 在 Python 中开发 web 应用程序和 REST API,我在这个框架中重视的主要一点是:它不强加其结构,也不干扰。与其使用一个需要斗争的重型框架,不如得到一个整洁的核心,您可以围绕您的任务构建。我使用蓝图组装项目,以便逻辑的每个部分都生活在自己的模块中,通过 SQLAlchemy 描述模型,建立适当的关系和迁移,并根据您的情况添加授权:会话、令牌或通过 OAuth 通过外部提供者登录。
我的方法很简单:在简单的解决方案足够的地方,我保持简单,只有在任务真正需要时才会提取复杂机制。一个小网站不需要与多租户服务相同的机制,因此我根据负载和您的未来计划选择架构。端点验证输入数据,返回可预测的 JSON,诚实地处理错误而不是泄漏回溯,并且有测试覆盖,以便后续修复不会悄悄破坏之前正常工作的内容。配置存储在环境变量中,秘密不会出现在代码库中,应用程序在笔记本电脑和服务器上运行相同。
最终,您将获得一个真正可以开发的后端:可读的代码、文档化的数据模型,以及下一个开发者或您自己在六个月后将连接新功能的明确位置。我从一个空文件夹开始一个项目,或者采用现有的 Flask 代码,整理它,并将其返回到一个坚实的基础。通常,工作包括:
— 基于蓝图的结构和基于 SQLAlchemy 的数据层
— 带有输入验证和统一 JSON 格式的 REST 端点
— 授权:会话、JWT 或 OAuth、角色和权限
— 背景任务、集成和部署配置
我的方法很简单:在简单的解决方案足够的地方,我保持简单,只有在任务真正需要时才会提取复杂机制。一个小网站不需要与多租户服务相同的机制,因此我根据负载和您的未来计划选择架构。端点验证输入数据,返回可预测的 JSON,诚实地处理错误而不是泄漏回溯,并且有测试覆盖,以便后续修复不会悄悄破坏之前正常工作的内容。配置存储在环境变量中,秘密不会出现在代码库中,应用程序在笔记本电脑和服务器上运行相同。
最终,您将获得一个真正可以开发的后端:可读的代码、文档化的数据模型,以及下一个开发者或您自己在六个月后将连接新功能的明确位置。我从一个空文件夹开始一个项目,或者采用现有的 Flask 代码,整理它,并将其返回到一个坚实的基础。通常,工作包括:
— 基于蓝图的结构和基于 SQLAlchemy 的数据层
— 带有输入验证和统一 JSON 格式的 REST 端点
— 授权:会话、JWT 或 OAuth、角色和权限
— 背景任务、集成和部署配置