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