耶索德
可以使用以下模板使用 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
函数,允许整齐的莎士比亚模板组合。