golang(7):研究一个golang 写的cms系统qor,功能特别全。 - Go语言中文社区

golang(7):研究一个golang 写的cms系统qor,功能特别全。


本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80575900

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

1,关于qor


qor是一个golang写的CMS系统lib库。
功能很强大,但是要操作起来还是要折腾下的。
项目地址:
https://getqor.com/cn
简书上面有几个文章介绍了下:
https://www.jianshu.com/p/31c96b929e4d
https://www.jianshu.com/p/31c96b929e4d
剩下的资料少了点。

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,界面


启动之后访问 http://localhost:7000/admin




4,第一个demo


qor 真的是个很强大的lib库。参考文档:
https://doc.getqor.com/get_started.html
下载pdf文件:
https://legacy.gitbook.com/book/theplant/qor-doc/details
是一个很不错的框架呢。
main.go :

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:%v@tcp(%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 都可以参考好好研究下。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80575900

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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/freewebsys/article/details/80575900
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 10:27:52
  • 阅读 ( 2326 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢