最近想找幾個基於Go語言開發的簡單的開源項目學習下,分享給大家,github上有心人的收集的awesome-go項目集錦:github地址
發現一個Qor項目:
Qor 是基於 Golang 開發的的CMS 一系列工具庫,基於 Qor可以快速搭建網站的后台管理系統。
Qor 的工作庫包含:
- 1,后台管理:可以對數據庫進去 CURD 管理,支持一對一,一對多,多對多關聯關系維護等等;
- 2,支持上傳圖片到雲以及 filesystem,resize、crop 圖片等等 ;
- 3,Publish 發布系統,可以修改數據,並且經過檢查后,再發布到正式環境中;
- 4,狀態機,可以用於開發工作流的系統;
- 5,I18n,翻譯,可以通過在 WEB 界面翻譯,並將翻譯保存到數據庫中;
- 6,L10n,本地化,不同於翻譯,他可以針對某個地區來對內容,或者數據結構進行本地化。
- 7,Roles,權限管理;
- 8,Exchange,通過 Excel,CSV 導入導出數據;
- 9,Worker,后台任務管理,可用於跑定時任務等等
在Qor項目(地址)的readme中還提供中外兩個聊天室,不懂的問題都可以盡情問,中文聊天室,英文聊天室,還寫了一個demo購物網站,對應源碼也在github上(https://github.com/qor/qor-example)。學習一個項目,就是先把項目跑起來看看效果,golang也是剛開始了解,花了兩天,簡單記錄下踩過的坑~
golang環境搭建這里就不介紹了,可以看前面的windows下Go Web編程系列。步驟如下:
一、克隆源碼
進入src源碼目錄下,md github.com\qor創建qor倉庫,git init初始化,git clone https://github.com/qor/qor-example.git等下下載完
二、查看README.md里面的Quick Started
(1)創建數據庫(此處用navica界面創建的):
(2)運行主程序(此處有很多問題):
問題1:"cloud.google.com/go/compute/metadata"包找不到,在src目錄下按照錯誤提示路徑創建后下載,git clone https://github.com/googleapis/google-cloud-go,然后修改目錄名(把google-cloud-go里面的同名目錄剪切到上一級替換掉google-cloud-go並把google-cloud-go改為go目錄,見下圖3)。
問題2:"D:\\mygo\\src\\github.com\\unrolled\\render" is not using a known version control system說明render不在版本控制,之前是下載的zip文件,所以刪除render重新git clone https://github.com/unrolled/render.git
net包也報過不在版本控制,同樣使用git clone https://github.com/golang/net.git 下載
下面go get -u安裝項目所需依賴,go run main.go主程序運行起來:
三、修改配置,創造fake數據
(1)主程序運行起來發現config/application.example.yml,config/smtp.example.yml,config/database.example.yml幾個配置文件找不到,將其example.去掉即可。
(2)閱讀README.md,再打開一個cmd執行Generate sample data
問題:執行腳本說faker包找不到,進入src\github.com 后md azumads創建報錯所說的路徑,cd azumads后 git clone https://github.com/azumads/faker.git
四、訪問web
第二步驟看出程序監聽7000端口,訪問web:http://localhost:7000/,效果如下:
五、繼續閱讀README.md體驗一下RESTful API
- Users:http://localhost:7000/api/users.json
- User 1:http://localhost:7000/api/users/1.json
- User 1's Orders:http://localhost:7000/api/users/1/orders.json
- User 1's Order 1:http://localhost:7000/api/users/1/orders/1.json
- User 1's Order 1's Items:http://localhost:7000/api/users/1/orders/1/items.json
- Orders:http://localhost:7000/api/orders.json
- Products:http://localhost:7000/api/products.json
六、遺留問題
問題1:RESTful API標記金色的3個page not found。
問題2:基礎界面出來了,大部分按鈕可以觸發,但是MEN WOMEN KIDS分類點擊后跳轉到了空白頁,golang不熟,這兩個問題后續代碼跟進下,如果有小伙伴跑這個項目沒問題,希望能給我點幫助~。~
更正一下,遺留兩個問題源碼也沒有實現,整體qor-example項目按照這個步驟可以完美運行,發現go也有進程管理相關包,gosuv,感興趣的可以了解下~