QOR-CMS(1):第一步,准开发环境。一个main.go开发一个admin系统。

本文的原文连接是:
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

博主地址是:http://blog.csdn.net/freewebsys

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/80721627
今日推荐