本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80721627
博主地址是:http://blog.csdn.net/freewebsys
前言
https://getqor.com/cn
QOR经过全新架构,以加速开发与部署内容管理系统(CMS)、电子商务系统和业务应用程序。QOR由这类系统中抽象出的通用功能模块构成,其中包含灵活可配置的后台、内容发布系统、媒体库等等。
文档:
https://doc.getqor.com/
代码:
https://github.com/golangpkg/qor-cms-demos
1,第一个main.go
和其他的cms系统不一样。这个是使用golang写的。
主要的一个lib是qor,并且依赖这个进行模块开发。
写一个后台系统。依赖的是 qor-admin 包。qor-admin 有很多丰富的lib库。
只要写一个简单的main就能进行web展示。
2,main代码
package main
import (
"fmt"
"net/http"
"github.com/qor/admin"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
//windows需要下载 http://tdm-gcc.tdragon.net/download
)
// 用户
type User struct {
gorm.Model
Name string
}
// 产品
type Product struct {
gorm.Model
Name string
Description string
}
func main() {
// 注册数据库,可以是sqlite3 也可以是 mysql 换下驱动就可以了。
DB, _ := gorm.Open("sqlite3", "demo.db")
DB.AutoMigrate(&User{}, &Product{}) //自动创建表。
// 初始化admin 还有其他的,比如API
Admin := admin.New(&admin.AdminConfig{DB: DB})
// 创建admin后台对象资源。
Admin.AddResource(&User{})
Admin.AddResource(&Product{})
// 启动服务
mux := http.NewServeMux()
Admin.MountTo("/admin", mux)
fmt.Println("Listening on: 9000")
http.ListenAndServe(":9000", mux)
}
使用的是sqlit3 做数据库,再windows当中,没有gcc,所以编译不赖sqlit3的驱动。
可以使用mysql 的驱动,mysql的驱动是用纯golang 写的,不需要gcc编译。
_ "github.com/jinzhu/gorm/dialects/mysql"
mysql_url =: "user:password@/dbname?charset=utf8&parseTime=True&loc=Local"
DB, _ = gorm.Open("mysql", mysql_url)
3,页面展示
增加了两个对象:
// 用户
type User struct {
gorm.Model
Name string
}
// 产品
type Product struct {
gorm.Model
Name string
Description string
}
然后把两个对象
DB.AutoMigrate(&User{}, &Product{}) //自动创建表。
// 初始化admin 还有其他的,比如API
Admin := admin.New(&admin.AdminConfig{DB: DB})
// 创建admin后台对象资源。
Admin.AddResource(&User{})
Admin.AddResource(&Product{})
把两个资源,User,Product加载到 resource里面。
效果:
简单几行代码就写了一个关于user 和 product 的CRUD 并且支持分页。
效果都非常的好。
页面是可伸缩的,要是屏幕变窄,左侧菜单就隐藏了。手机端也可以适配了。
4,总结
非常的简单的就开发了一个admin系统。这个是再开发环境的。
需要依赖go-admin的开发包。要是线上部署的时候需要把 qor-admin 的 veiws 包也拷贝出去。
后续再说。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80721627