go語言實戰教程之 後台管理頁面統計功能開發(1)

2021-09-17 23:04:31 字數 1967 閱讀 3680

本節內容我們將學習開發實現後台管理平台頁面統計功能開發的功能介面,本章節內容將涉及到多種請求路由的方式。

後台管理平台不僅是功能管理平台,同時還是資料管理平台。從資料管理平台角度來說,在管理平台中需要提供對平台各項資料的實時跟蹤和監測,以方便管理員使用者能夠看到平台資料走勢,在後台功能中主介面,提供了展示使用者、管理員、商品等多種資料的統計情況。如下圖所示:

在上面的圖中,我們可以看到涉及的統計及類別是多種資料型別,總結歸納主要有以下幾類:

在看到上述功能效果並進行功能分析以後,我們從請求出發,對統計資料介面進行分類。首先開啟瀏覽器右上角的擴充套件功能,找到更多工具,選擇開發者工具,開啟除錯工具。如下圖所示:

請求資料:具體的向伺服器提交的請求資料內容。

知道了這幾項內容,我們就能夠在後台進行開發我們的**。

了解完介面請求重要的資料和請求資料型別以後,我們可以將統計模組中的這些資料請求介面進行梳理,並進行分類。方便我們伺服器進行分類處理。經過梳理,我們會發現,一共有三類請求介面型別:

總記錄資料介面請求

近7日每天增長資料介面請求

經過如上的分析,我們已經能夠看到,三類資料請求中,其中有兩類使用**/statis**字首來進行資料介面請求。按照專案模組化開發的原則,我們做如下實現:

經過如上的方案分析,我們要建立統計模組了。

統計模組控制器(statiscontroller)

既然是乙個全新的模組,我們就使用mvc來構建實現請求邏輯處理和業務功能實現。首先,就要定義統計模組控制器,**定義如下:

type statiscontroller struct
業務功能實現(statisservice)

如上的statiscontroller控制器,僅僅是負責進行請求業務邏輯處理,重要的邏輯功能實現,需要在資料功能提供者中實現,這裡就是我們定義的statisservice。比如statisservice向外提供以下功能介面及定義:

type statisservice inte***ce
上述statisservice僅僅是介面標準的定義。為了實現**的解耦,我們通過另外的實現定義來對介面進行功能實現,如下所示:

type statisservice struct
該statisservice即是我們定義的實現statisservice介面的結構體,該結構體會實現上述statisservice的三個所有方法,並完成具體的業務邏輯,具體的**開發我們下節課內容講解。

路由組解析及mvc模組繫結

statisservice := service.newstatisservice(engine)

statis.register(

statisservice,

sessmanager.start,

)statis.handle(new(controller.statiscontroller))

正規表示式識別請求

在上文我們對請求做分析分類時,我們說到了在進行請求統計時,會有日期變化的url請求,也有不同模組的請求。如何解析動態變數的url請求?我們這裡就運用到了之前的學習知識正規表示式識別請求

該路由組就可以識別以statis開頭的請求,**用來區分表示模組,具體取值有admin、order、user。**用來表示日期。

本節內容我們對統計功能做了分類和分析,並著手建立了我們整體的**邏輯,下節內容我們將具體實現這些功能介面的**開發。

Go語言實戰 revel框架教程之許可權控制

乙個站點上面最基本都會有三種使用者角色,未登入使用者 已登入使用者和管理員。這一次我們就來看看在revel框架下如何進行許可權控制。因為revel是mvc結構的,每乙個url其實都會對映到乙個具體的controller.action上面,所以許可權控制落到實處就是對action的訪問進行控制。那麼思...

Go語言實戰 revel框架教程之快取和Job

所有的 應該都會有乙個非常簡單的需求,首頁一秒之內開啟。滿足的方式主要有兩種 資料記憶體化,把常用的資料全都放到記憶體,定期分批寫入硬碟。相比靜態頁面,這個方法對cpu的要求稍高。好處就不細說了,動態網頁的好處相比大家都耳熟能詳了。山坡網選擇了第二種方案,資料記憶體化。revel本身提供了cache...

go語言實戰教程之管理員查詢功能 退出功能

前面第10節課內容中已經學習開發完成了管理員登陸功能。本節課我們將繼續學習開發完成管理員資訊查詢功能 管理員退出功能 請求及路由對映 路由控制器繫結服務端使用之前已經學習過的mvc包繫結控制器自動解析路由請求。設定解析mvc管理員控制器 如下所示 admincontroller負責處理管理員模組的請...