1.项目介绍

基于Go语言和gin框架开发的个人博客系统,该项目可以帮助你的golang应用快速实现前端和后端系统。

aiwen-gin-blog是一个基于go语言和gin框架开发的前端和后台管理系统,集成动态路由,日志,文件配置加载,鉴权等功能,让您把更多时间专注在业务开发上。

2.技术选型

  • 前端:用基于layui构建基础页面。
  • 后端:用Gin快速搭建基础restful风格API,Gin是一个go语言编写的Web框架。
  • 数据库:采用MySQL,使用gorm实现对数据库的基本操作。
  • 缓存:使用Redis实现记录Session登录限制。
  • 配置文件:使用fsnotifyviper实现yaml格式的配置文件。
  • 日志:使用zap日志库实现日志记录。

3.项目架构

3.1 系统架构图

Gin框架Go Web项目实战_前端

3.2 目录结构

.
├── conf (配置文件)
│   └── config.yaml
├── controller(控制类)
│   ├── admin.go
│   ├── auth.go
│   ├── base.go
│   ├── blog.go
│   └── controller.go
├── dao (数据库连接)
│   └── mysql.go
├── log(日志文件)
├── logger(zap logger工具类)
│   └── logger.go
├── main.go (入口文件)
├── models(GORM 访问数据库)
│   ├── base.go
│   ├── category.go
│   ├── comment.go
│   ├── config.go
│   ├── post.go
│   ├── response.go
│   └── user.go
├── routers (路由)
│   └── routers.go
├── settings (文件配置管理)
│   └── settings.go
├── static (静态文件)
├── templates(页面文件)
└── util(工具类)
    ├── RediStore.go
    ├── SessionStore.go
    ├── functions.go
    ├── localtime.go
    └── pager.go

4.类图设计

Gin框架Go Web项目实战_golang_02

5.UML时序图设计

Gin框架Go Web项目实战_mysql_03

6. 项目实战

6.1 创建数据库

CREATE DATABASE IF NOT EXISTS aiwen_gin_blog;

6.2 初始化数据

  • 通过用户名和密码登录

$ mysql -uroot -p12345678

  • 切换数据库

mysql> use aiwen_gin_blog;

  • 初始化数据

mysql>source /Users/zhengwenjie/gopath/src/aiwen-gin-blog/aiwen_gin_blog.sql

6.3 服务器启动

6.4 服务登录

6.4.1 后端管理系统

6.4.2 前端门户网站

Gin框架Go Web项目实战_前端_04

6.5 代码实战操作

视频课程:基于gin框架的Go Web开发项目实战【共90课时】_Go语言课程-51CTO学堂

接下来,带领大家0-1实战操作,来完成Go项目开发。

Gin框架Go Web项目实战_golang_05