golang(7):研究一個golang 寫的cms系統qor,功能特別全。
阿新 • • 發佈:2019-01-08
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 都可以參考好好研究下。