

# 使用 AWS SDK for Python (Boto) 的 DynamoDB 示例应用程序：井字游戏
<a name="TicTacToe"></a>

井字游戏是一个示例 Web 应用程序，在 Amazon DynamoDB 中构建。该应用程序使用 AWS SDK for Python (Boto) 发出必需的 DynamoDB 调用，将游戏数据存储到 DynamoDB 表中，并使用 Python Web 框架 Flask 来说明 DynamoDB 中的端到端应用程序开发过程，包括如何对数据进行建模。其中还演示了在 DynamoDB 中对数据进行建模时的最佳实践，包括您为游戏应用程序创建的表、定义的主键、基于查询要求所需的其他索引以及连接值属性的使用。

在 Web 上玩井字游戏应用程序的方法如下所示：

1. 登录到应用程序主页。

1. 然后邀请另一个用户以您的对手身份玩游戏。

   在另一个用户接受您的邀请之前，游戏状态将保持为 `PENDING`。在对手接受邀请之后，游戏状态将更改为 `IN_PROGRESS`。

1. 在对手登录并接受邀请后，游戏开始。

1. 应用程序将游戏中的所有移动步骤和状态信息存储到 DynamoDB 表中。

1. 游戏结束时会显示获胜或平手，这会将游戏状态设置为 `FINISHED`。

以下步骤介绍了端到端应用程序构建体验：
+ **[第 1 步：在本地进行部署和测试](TicTacToe.Phase1.md)** – 在本部分中，在本地计算机中下载、部署和测试应用程序。您将在 DynamoDB 的可下载版本中创建所需的表。
+ **[第 2 步：检查数据模型和实施详细信息](TicTacToe.Phase2.md)** – 本部分首先详细介绍数据模型，包括索引和连接值属性的使用。本部分接下来说明本应用程序的工作方式。
+ **[第 3 步：在生产环境中使用 DynamoDB 服务进行部署](TicTacToe.Phase3.md)** – 本部分侧重于生产中的部署注意事项。在本步骤中，您将使用 Amazon DynamoDB 服务创建表并使用 AWS Elastic Beanstalk 部署应用程序。在生产环境中使用本应用程序时，您还需要授予合适的权限，以便应用程序访问 DynamoDB 表。本部分中的说明将引导您完成端到端的生产部署。
+ **[步骤 4：清理资源](TicTacToe.AppClosure.md)** – 本部分重点介绍该示例中未包含的领域。本部分还为您提供了若干步骤，删除您在之前步骤中创建的 AWS 资源，以免产生任何费用。