Haskell之Yesod開發–簡單網站開發(三)
現在我們進入第五章的學習
首先複製P71頁的程式碼。這裡我們看到了很多新的東西,例如setTitle
,toWidget
,addScriptRemote
,這些具體函式我們會在後面討論到。我們先複習一下前面的知識,來改寫一下現有的邏輯程式碼。
我們先增強一下網頁的正文內容,我們看到有一個
[hamlet|
<h1>Here's one way of including content
|]
還記得我們上一章的總結麼,hamlet
可以渲染其中的@{..}
語法,但是需要接一個data->[(Text,Text)]->Text
的函式
我們先來補充這樣一個data
data Fruits = Apple | Banana
renderFruits :: Fruits->[(Text,Text)]->Text
renderFruits Apple _ = "Apple"
renderFruits Banana _ = "Banana"
嗯,OK了。我們來做一個拼接
toWidget
[hamlet|
...
<a [email protected]{Apple}>apple
|] renderFruits
Oh,不錯所料,出錯了,為什麼呢。因為[hamlet|..|] render
Text.Blaze.ToMarkup a
,而toWidget
需要的型別為MonadWidget m, ToWidget(HandlerSite m) a) a
,那麼不匹配怎麼辦呢,別急,我們還有萬能的toHtml
,toHtml::Text.Blaze.ToMarkup=>a -> Html
我們實際可以執行的程式碼如下
toWidget
$ toHtml $[hamlet|
...
<a [email protected]{Apple}>
|] renderFruits
接下來我們處理僅替換變數的[hamlet||]
toWidgetHead
[hamlet|
<meta name=keywords content="some sample"
|]
我們來試一下直接在後面新增where
語句
data Fruits = Apple|Banana deriving Show
toWidgetHead
[hamlet|
<meta name=keywords content="some sample">
<meta name=search content=#{show keywords}
|]
where keywords=Apple
但是在這裡要注意,content=#{show keyword}
當轉成Html
時,會自動在content=
之後的值兩側加上引號
,所以#{..}
會對其中的值做Encode
,導致不能直接輸出字串
在{..}
中,必須採用構造值的形式傳入,例如上述的例子。該問題影響面較廣,留待以後解決。
相關推薦
Haskell之Yesod開發–簡單網站開發(三)
現在我們進入第五章的學習 首先複製P71頁的程式碼。這裡我們看到了很多新的東西,例如setTitle,toWidget,addScriptRemote,這些具體函式我們會在後面討論到。我們先複習一下前面的知識,來改寫一下現有的邏輯程式碼。 我們先增強一下網頁
Haskell之Yesod開發–簡單網站開發(五)
設定網站Host instance Yesod XXX where approot = ApprootStatic "http://static.example.comn/wiki" 注意: 使用ApprootStatic的時候,URL是不需
Haskell之Yesod開發–簡單網站開發(四)
Widget學習 複製P74頁的程式碼,來體驗一下toWidgetHead和toWidgetBody 複製P76頁的程式碼,我們來體驗一下如何組合widget 這段程式碼在我的電腦上會報錯。誰解決了請留個言 複製P77頁的程式碼,體驗一下newIden
Haskell之Yesod開發–邊踩坑邊開發(2)
今天繼續上一節的開發 今天我們需要具體的開發一個圖書館網站,分為以下幾個頁面 / HomeR GET 主頁 /login LoginR GET 使用者登入頁面 /library LibraryR GET 圖書館介紹頁面 /booklist BookList
Haskell之Yesod開發–邊踩坑邊開發(2.1)
按照書上第八章的內容,我們來建立一個表單。 程式碼無誤,但是有一點,預設的庫使用了Google的CDN。這在大區域網當然沒法用。我們來改造一下 首先我們要搞定自己的靜態資源(如果你有CDN,可以跳過這裡) 1.安裝yesod-static 安裝過程會提示有些庫找不到,可以一
使用IntelliJ IDEA開發SpringMVC網站(三)資料庫配置
六、資料庫配置 下面,就要通過一個簡單的例子,來介紹SpringMVC如何整合Spring Data JPA(由 Hibernate JPA 提供),來進行強大的資料庫訪問,並通過本章節的講解,更加深刻地認識Controller是如何進行請求處理的,相信看完這一
網站開發之MyEclipse簡單實現JSP網頁表單提交及傳遞值
本文主要是作者《中小型網站開發與設計》課程的內容,非常基礎的文章,主要是指導學生學會用MyEclipse實現JSP網頁表單提交及傳遞引數。希望大家喜歡這篇文章,基礎文章,不喜勿噴~ 一. MyEclipse實現網頁動態表單提交 1.新建Web Service工程,名稱為te
用Django框架開發一個簡單的企業網站(三)
接著之前的專案繼續深入開發,後臺和資料庫已經搞定,現在可以寫我們網站的功能了;就寫一個最簡單的功能,釋出企業新聞。開啟app內的models.py檔案,寫兩個資料模型類: from django.db import models class NewsClass(models.Model)
Flask專案之手機端租房網站的實戰開發(三)
說明:該篇部落格是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家! 接著上一篇部落格繼續往下寫 :https://blog.csdn.net/qq_41782425/article/details/85623829 注:在此專案中我不會使用程式碼塊插入程式碼,而是通過插入圖片來進行演
移動端web開發初探之Vuejs的簡單實戰
參考 細節 重要 進行 標簽 樣式 mob 優化 view 這段時間在做的東西,是北郵人論壇APP的註冊頁。這個註冊頁是內嵌的網頁,因為打算安卓和IOS平臺同時使用。因此實際上就是在做移動端的web開發了。 在這過程中遇到了不少有意思的東西。 DEMO的github地址在這
php之微信公眾號開發三公牛牛房卡平臺搭建使用php7要註意的地方
mar shadow 公眾號開發 jpg oss 文檔 微信公眾號開發 dem proc 開啟微信公眾號開發三公牛牛房卡平臺搭建網站(h5.fanshubbs.com聯系Q1687054422),從微信開發文檔中下載demo 如下載php示例代碼 示例代碼中是使用“$GL
jeesite 框架搭建與吉林快三配置網站開發環境部署
hub string div tab ips lec serve fan core 環境要求 1、吉林快三網站源碼(Q2947702644) 下載 2、Eclipse IDE for Java EE Mars 2 (4.5.2) 下載 3、Apache Maven 3.3+
Python開發簡單爬蟲之靜態網頁抓取篇:爬取“豆瓣電影 Top 250”電影數據
模塊 歲月 python開發 IE 女人 bubuko status 公司 使用 目標:爬取豆瓣電影TOP250的所有電影名稱,網址為:https://movie.douban.com/top250 1)確定目標網站的請求頭: 打開目標網站,在網頁空白處點擊鼠標右鍵,
thinkPHP 框架開發極速快三網站開發環境部署運行調試
fin core leg nco cts flush pom 中文 網站開發 環境要求 1、極速快三網站開發(Q2222168869) 下載 2、thinkPHP 框架開發各地快三玩法 下載 3、Apache Maven 3.3+ 下載 4、MySql 5.7+ 下載 導入
解決android studio 導快三網站開發入module作為lib使用時不顯示的問題
android-l 顯示 manifest 若是 文件 sde tools follow idm 1.快三網站開發 haozbbs.com Q1446595067 將 android module導入 android project 中 這裏寫圖片描述 這裏寫圖片描述2.在
java實現PBOC的TL分V分彩網站開發格式解析,超簡單的解析
ica 取值 網站 pack 復合 tags default \n fault 簡介下TLV:分V分彩網站開發 haozbbs.com Q1446595067 PBOC基本信息數據采用TLV(tag-length-value)的表示方式,即每項由tag標簽(T),長度(L)
PHP開發之遞歸算法的三種實現方法
簡單的 靈活運用 要掌握 發布 容易 lob 實現原理 出現 無限分類 遞歸算法對於任何一個編程人員來說,應該都不陌生。因為遞歸這個概念,無論是在PHP語言還是Java等其他編程語言中,都是大多數算法的靈魂。對於PHP新手來說,遞歸算法的實現原理可能不容易理解。但是只要你了
java小白自己動手開發一個網站之域名的申請(第4回)
新手小白,大神們看到什麼問題,請多多指出 目錄 域名的申請 域名的申請 之前想做部落格,聽說朋友用的阿里雲的域名很便宜,於是就過去申請了一個 登入賬號就是淘寶的賬號 地址: https://wanwang.al
java小白自己動手開發一個網站之技術選型(第3回)
新手小白,大神們看到什麼問題,請多多指出 目錄 MyWeb技術選型 一、域名 二 、網站空間 三 、開發環境: 四、框架選擇 1.前段 2.後端 五、資料庫 六、伺服器 MyWeb技術選型 一、域名 來
java小白自己動手開發一個網站之搭建一個網站需要啥(第2回)
新手小白,大神們看到什麼問題,請多多指出 目錄 新手小白,大神們看到什麼問題,請多多指出 搭建網站的流程 註冊域名 購買空間 製作網站 搭建網站的流程 搭建網站有哪些流程 1\註冊域名 2\購買空間 3\製作網站 &