日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

revel MySQL_使用Revel(go)开发网站

發(fā)布時(shí)間:2023/12/16 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 revel MySQL_使用Revel(go)开发网站 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Revel很好的利用了Go語(yǔ)言的goroutine,把每一個(gè)request都分配到了goroutine里。不用再寫(xiě)一大堆的回調(diào)。如果你寫(xiě)過(guò)nodejs的話就會(huì)深刻的體會(huì)到callback hell是什么樣子的。正是由于Revel有了goroutine,Revel的性能也有了很大的提升。官網(wǎng)號(hào)稱請(qǐng)求的吞吐量是Rails的3到10倍。Revel的性能好,在開(kāi)發(fā)方面也提供了非常全面的工具。常用的路由、模板、session、參數(shù)解析、等幾乎都有,甚至還提供了一個(gè)測(cè)試框架。而這些東西的開(kāi)發(fā)都是模塊化的,也就是你可以用自己的實(shí)現(xiàn)來(lái)代替上述提到的工具。比如,用你覺(jué)得合適的活著自己開(kāi)發(fā)的router來(lái)代替默認(rèn)的路由。

這里默認(rèn)的你已經(jīng)配置好了go env。在GOPATH所指定的目錄中的一個(gè)里,運(yùn)行命令go get github.com/revel/revel之后再運(yùn)行g(shù)o get github.com/revel/cmd/revel。好的這個(gè)時(shí)候你會(huì)報(bào)錯(cuò)說(shuō)無(wú)法import到websocket這個(gè)包。感謝偉大的全國(guó)防火墻,這部分的代碼被屏蔽了。雖然直接下載不行,但是代碼在github上還是有的。所以,還是可以手動(dòng)下載,之后配置上的。

這里就需要知道go的另一個(gè)很好的工具:http://gopm.io/。這是一個(gè)類似于nodejs的npm一樣的工具。他會(huì)根據(jù)版本號(hào)來(lái)下載對(duì)應(yīng)的go包,而不是git、hg什么的。你可以下載這個(gè)工具,也可以點(diǎn)download項(xiàng)進(jìn)入下載頁(yè)面(這里:http://gopm.io/download)。然后在import path里輸入 golang.org/x/net,點(diǎn)擊下載。這個(gè)包就下載下來(lái)了。

下載成功后,解壓下載包:

很大的一包。最后就是我們需要的websocket包。我們準(zhǔn)備把全部的這些包都放在需要的目錄下。這個(gè)時(shí)候回頭看看報(bào)錯(cuò)內(nèi)容:golang.org/x/net/websocket。但是在我們的GOPATH/src目錄下是沒(méi)有這個(gè)目錄的。所以我們需要?jiǎng)?chuàng)建websocket之前的全部目錄。之后把我們上面解壓出來(lái)的全部的內(nèi)容拷貝過(guò)去。這個(gè)問(wèn)題就可以解決了。最后,手動(dòng)build一下revel。執(zhí)行命令:go build github.com/revel/cmd/revel。之后就會(huì)在bin目錄下生成revel的二進(jìn)制可執(zhí)行文件。到這里revel的安裝就算完成了。

完成安裝后,運(yùn)行revel命令會(huì)出現(xiàn)如下的提示:

運(yùn)行revel new命令,revel會(huì)為你生成一個(gè)默認(rèn)的站點(diǎn)。命令如下:revel new github.com/first_test/app。應(yīng)為這個(gè)站點(diǎn)只是測(cè)試用的,我還要生成更多的其他的站點(diǎn),所以這里的目錄略復(fù)雜一點(diǎn)。你可以根據(jù)自己的需要決定目錄。大體的目錄結(jié)構(gòu)式這樣的:

運(yùn)行命令revel run,例如:revel run github.com/first_test/app。這個(gè)時(shí)候一個(gè)站點(diǎn)已經(jīng)運(yùn)行起來(lái)了。在瀏覽器中輸入localhost:9000,回車(chē)。你會(huì)看到:

現(xiàn)在安裝和配置已經(jīng)完成。

開(kāi)發(fā)之前先認(rèn)識(shí)一下revel為我們生成的目錄結(jié)構(gòu):

app?項(xiàng)目根目錄?├──?app?MVC框架目錄?│?├──?controllers?控制器目錄?│?├──?init.go?│?├──?models?模型目錄?│?├──?routes?│?├──?tmp?│?└──?views?視圖目錄?├──?conf?│?├──?app.conf?配置文件?│?└──?routes?路由文件?├──?messages?國(guó)際化目錄?├──?public?靜態(tài)文件目錄?└──?tests

看起來(lái)好復(fù)雜的樣子。其實(shí)對(duì)于開(kāi)發(fā)者來(lái)說(shuō)最常用的并沒(méi)有那么多。最簡(jiǎn)單的public,這個(gè)目錄下面的是css、img和js文件存放的地方。我們最常用到的就是app/conf/routes和app/app/controllers。

現(xiàn)在我們?cè)赼pp/conf/routes這個(gè)文件中增加一個(gè)路由GET /blogs Blogs.Blogs

保存。在views目錄下創(chuàng)建blogs目錄并在其下創(chuàng)建blogs.html文件。這里只是作為示例使用,所以blogs.html文件是從index.html復(fù)制過(guò)來(lái)改了個(gè)名字的。

在controllers下創(chuàng)建我們自己的controller:blogs.go文件,代碼如下:

"github.com/revel/revel"*

現(xiàn)在重啟服務(wù),在瀏覽器中輸入localhost:9000/blogs就會(huì)出現(xiàn)開(kāi)始的時(shí)候出現(xiàn)的index頁(yè)的內(nèi)容。這里出現(xiàn)index的內(nèi)容,如前所述,是因?yàn)槲覀冎苯影裪ndex頁(yè)的內(nèi)容拷貝過(guò)來(lái)的。

由此可見(jiàn),在revel上的開(kāi)發(fā)一般是如下三步:

創(chuàng)建我們所需要的路由。

創(chuàng)建相關(guān)的view試圖。

創(chuàng)建controller。

完成以上三步就已經(jīng)添加了我們自己需要的東西了。其他的內(nèi)容的使用可以參考官網(wǎng)的文檔。

還有一點(diǎn)需要注意。先看下圖:

我們?cè)谔砑勇酚傻奈募行枰⒁庾詈蟮囊恍小? /:controller/:action :controller.:action

*表示的是網(wǎng)絡(luò)請(qǐng)求的方法:GET、POST、DELETE等,后面的/:controller/:action是網(wǎng)絡(luò)請(qǐng)求的路徑,最后的:controller.:action是用戶定義的controller和在其中的action。所以按照這個(gè)路徑訪問(wèn)的內(nèi)容,如果controller和action都存在的話,是可以訪問(wèn)到的。也就是說(shuō),如果我們沒(méi)有添加任何的路由,只用這個(gè)默認(rèn)的生成的路由也是可以訪問(wèn)到blogs的。可以試一下,在瀏覽器訪問(wèn)localhost:9000/blogs/blogs。同樣可以顯示我們添加的blogs.html。這個(gè)路徑的第一個(gè)blogs就是controller的名字(當(dāng)讓controller的首字母是會(huì)大寫(xiě)的)。后面的一個(gè)blogs對(duì)應(yīng)的就是controller的action也就是Blogs結(jié)構(gòu)的Blogs方法。

controller的數(shù)據(jù)如何能傳給模板呢。修改blogs.html中的

It?works!

{{.greeting}}

修改Blogs的代碼:

greeting?=

這次不用重啟服務(wù)了。對(duì)于路由、controller和view的修改是不用重啟服務(wù)的。Revel支持hot-reload。修改后的內(nèi)容都會(huì)自動(dòng)重新編譯。刷新瀏覽器。

開(kāi)啟你的Revel之旅吧!

總結(jié)

以上是生活随笔為你收集整理的revel MySQL_使用Revel(go)开发网站的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。