耶索德

可以使用以下模板使用 stack new 创建 Yesod 项目:

  • yesod-minimal。最简单的 Yesod Scaffolding 可能。
  • yesod-mongo。使用 MongoDB 作为数据库引擎。
  • yesod-mysql。使用 MySQL 作为数据库引擎。
  • yesod-postgres。使用 PostgreSQL 作为数据库引擎。
  • yesod-postgres-fay。使用 PostgreSQL 作为数据库引擎。使用 Fay 语言作为前端。
  • yesod-simple。如果你不需要数据库,建议使用的模板。
  • yesod-sqlite。使用 SQlite 作为数据库引擎。

yesod-bin 包提供 yesod 可执行文件,可用于运行开发服务器。请注意,你也可以直接运行你的应用程序,因此 yesod 工具是可选的。

Application.hs 包含在处理程序之间调度请求的代码。如果你使用它们,它还会设置数据库和日志记录设置。

Foundation.hs 定义了 App 类型,可以看作是所有处理程序的环境。在 HandlerT monad 中,你可以使用 getYesod 函数获得这个值。

Import.hs 是一个只重新导出常用东西的模块。

Model.hs 包含模板 Haskell,它生成用于数据库交互的代码和数据类型。仅在使用 DB 时出现。

config/models 是你定义数据库架构的地方。由 Model.hs 使用。

config/routes 定义了 Web 应用程序的 URI。对于路由的每个 HTTP 方法,你需要创建名为 {method}{RouteR} 的处理程序。

static/目录包含站点的静态资源。这些由 Settings/StaticFiles.hs 模块编译成二进制文件。

templates/目录包含在提供请求时使用的莎士比亚模板。

最后,Handler/目录包含定义路由处理程序的模块。

每个处理程序都是基于 IO 的 HandlerT monad 动作。你可以检查请求参数,其正文和其他信息,使用 runDB 向数据库进行查询,执行任意 IO 并向用户返回各种类型的内容。为了提供 HTML,使用了 defaultLayout 函数,允许整齐的莎士比亚模板组合。