Golang实现小型CMS内容管理功能(一):Gin框架搭配Gorm实现增删查改功能

本文介绍了一个在线客服系统的官网建设过程,包括如何通过增加内容管理功能提高搜索引擎排名,并分享了具体的数据库设计与前后端实现方案。

我自己开发了一款在线客服系统,最近一直琢磨把客服系统官网做好。因为访客来的人不少,大部分人可能就是看看官网界面就走了,怎样把这些访客留存下来,去测试试用客服系统,是我一直琢磨的问题。

官网是一个企业的门面,也是一个系统的门面,还是需要把门面的内容整理总结一下,让大家能清楚看到系统的功能。网站的内容少,那么搜索引擎收录的就少,这样会导致网站的权重不高,搜索排名比较低。

因此要简单的加上一个小型的内容管理功能。

大家感兴趣也可以去看看唯一客服系统

设计数据库

很简单的两张表,分类表和内容表

DROP TABLE IF EXISTS `cms_cate`;
CREATE TABLE `cms_cate` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `cat_name` varchar(50) NOT NULL DEFAULT '' COMMENT '分类名称',
 `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
 PRIMARY KEY (`id`) COMMENT '自增主键索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT 'CMS分类表';
DROP TABLE IF EXISTS `cms_news`;
CREATE TABLE `cms_news` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(500) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标题',
 `content` text COLLATE utf8mb4_general_ci COMMENT '内容',
 `cat_id` int(11) NOT NULL DEFAULT '0' COMMENT '分类ID',
 `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
 PRIMARY KEY (`id`) COMMENT '自增主键索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT 'CMS内容表';

编写数据库操作gorm Model部分

设计两个结构体

type CmsCate struct {
    Id        uint       `json:"id"`
    CatName   string     `json:"cat_name"`
    CreatedAt types.Time `json:"created_at"`
}
type CmsNews struct {
    Id        uint       `json:"id"`
    Title     string     `json:"title"`
    Content   string     `json:"content"`
    CreatedAt types.Time `json:"created_at"`
}

types.Time类型是我对time.Time类型的包装,用于在序列化为json的时候,可以格式化时间。

默认的Time类型,JSON序列化出来后是UTC格式,不符合观看习惯

package types

import (
    "database/sql/driver"
    "fmt"
    "time"
)

type Time struct {
    time.Time
}

func (t Time) MarshalJSON() ([]byte, error) {
    localTime := t.Format
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值