耶索德

可以使用以下模板使用 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 函式,允許整齊的莎士比亞模板組合。