1. 程式人生 > >golang(7):研究一個golang 寫的cms系統qor,功能特別全。

golang(7):研究一個golang 寫的cms系統qor,功能特別全。

1,關於qor

2,安裝qor

其實主要是 依賴比較多。其實admin qor 是lib庫形式的。
主要的還是要看 qor-example 這個才是專案的例子。
還有線上的demo演示,就是這個程式碼。
https://demo.getqor.com/auth/login
依賴還是挺多的。

go get -v github.com/qor/qor
go get -v github.com/qor/admin
go get -v github.com/qor/qor-example

-v 是可以下載相關依賴的。

經跟漫長的等待就下載好了。。。
然後進入qor-example 裡面

啟動之前需要配置下mysql資料庫,配置檔案在:

config/database.example.yaml

db:
  adapter: mysql
  name: qor_example
  user: root
  password: mariadb

然後再啟動:

go run main.go

啟動之後如果發現介面卡住了。ctrl+c 下,好像不知道哪裡配置沒有對。

qor 是按照模組進行開發,相關的模組一大堆呢。
很完整的專案。

3,介面




4,第一個demo

package main

import (
  "fmt"
"net/http" // "github.com/qor/qor" "github.com/qor/admin" "github.com/jinzhu/gorm" //_ "github.com/jinzhu/gorm/dialects/sqlite" _ "github.com/jinzhu/gorm/dialects/mysql" ) // Define a GORM-backend model type User struct { gorm.Model Name string } // Define another GORM-backend model type Product struct
{ gorm.Model Name string Description string } func main() { // Set up the database mysql_url := fmt.Sprintf("%v:%[email protected](%v:%v)/%v?parseTime=True&loc=Local","root", "mariadb","127.0.0.1", "3306", "qor_demo") DB, _ := gorm.Open("mysql", mysql_url) // DB, _ := gorm.Open("sqlite3", "demo.db") //for sqlite3 DB.AutoMigrate(&User{}, &Product{}) // Initalize Admin := admin.New(&admin.AdminConfig{DB: DB}) // Create resources from GORM-backend model Admin.AddResource(&User{}) Admin.AddResource(&Product{}) // Initalize an HTTP request multiplexer mux := http.NewServeMux() // Mount admin to the mux Admin.MountTo("/admin", mux) fmt.Println("Listening on: 9000") http.ListenAndServe(":9000", mux) }

非常的簡單方便,定義了兩個實體型別,就有了兩個實體型別的CURD。
還可以根據自己的需要增加許可權,增加api介面。增加session,儲存,國際化等等。
並不是像別的CMS直接把功能寫好,這個是給你一個lib庫,然後根據這個lib庫,
開發定製自己想要的CMS,這個架構設計思路還是挺好的。

4,總結

qor思路還是不錯的,通過外掛的方式更方便的開發CMS系統。感覺上能做的不僅僅是一個CMS啦,啥系統都可以做呢。商城,網站,部落格,手機端 rest api 管理。
啥CRM,ERP 更復雜的系統也可以嘗試呢。

第一步,已經研究明白了,qor是一個基礎lib庫,能幫你實現CRUD。
具體CMS是啥樣子,可以自己定製開發。超級方便。
直接寫自己的程式碼就行了。官方文件和 example 都可以參考好好研究下。