使用Golang搭建博客系统

这是一个使用Golang开发的一个简易版的Blog,会用到MySql Gorm Gin等技术,这篇文章主要讲项目的初始化操作。

安装

  • 点击安装 Golang最新版本

  • 安装Mysql,推荐使用Docker安装。

项目初始化

创建一个项目目录,比如golang-blog,然后进入目录,执行以下命令

1
go mod init golang-blog

会生成一个go.mod文件,内容如下

1
2
3
4
5

module golang-blog

go 1.22.4

创建main.go文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

package main

import "github.com/gin-gonic/gin"

func main() {
r := gin.Default()

r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run(":8080")
}

这段代码是一个简单的Gin框架的代码,启动后,访问http://localhost:8080/ping会返回{"message":"pong"}

Gin文档地址: https://gin-gonic.com/,可以查看更多的API

链接数据库

创建一个config目录,然后创建一个db.go文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

package config

import (
"fmt"
"log"
"os"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

var DB *gorm.DB

func ConnectMysql() {

dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
os.Getenv("DB_USER"),
os.Getenv("DB_PASSWORD"),
os.Getenv("DB_HOST"),
os.Getenv("DB_PORT"),
os.Getenv("DB_NAME"))

var errDb error
DB, errDb = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if errDb != nil {
log.Fatalf("Error connecting to the database: %v", errDb)
}

}

这段代码是连接Mysql的代码,使用了Gorm框架,Gorm文档地址: https://gorm.io/

还需要在项目根目录创建一个.env文件,内容如下

1
2
3
4
5
DB_USER=root
DB_PASSWORD=123456
DB_NAME=blog
DB_HOST=localhost
DB_PORT=3306

这个文件我们使用godotenv来读取,所以需要安装godotenv

1
2
3

go get github.com/joho/godotenv

godotenv文档地址: https://github.com/joho/godotenv

main.go文件中引入godotenv包,并且连接数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

package main

import (
"golang-blog/config"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
)
func init() {
err := godotenv.Load(".env")
if err != nil {
panic("Error loading .env file")
}
}
func main() {

config.ConnectMysql()
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run(":8080")
}

这样我们就连接了数据库, 项目初始化完成,下一篇文章我们会创建一个Model来操作数据库。

总结

我们用到的依赖有Golang Gin Gorm Mysql godotenv等,这篇文章主要讲项目的初始化操作,下一篇文章我们会创建一个Model来操作数据库。

当前的项目目录结构如下

1
2
3
4
5
6
7
8
9
10
11

│ .env
│ go.mod
│ go.sum
│ main.go

├─.vscode
│ launch.json

└─config
db.go

Github地址


使用Golang搭建博客系统
https://blog.justcurd.com/golang-web-init/
Author
Just-Curd
Posted on
July 29, 2024
Licensed under