go iris 连接 mysql 异步_使用 Iris 打造一款个人博客(配置篇) - Go语言中文社区

go iris 连接 mysql 异步_使用 Iris 打造一款个人博客(配置篇)


Iris 号称世界第一快的框架

实际上测试对比几款高性能的 go web 框架,Iris 框架的响应速度确实优于其他框架(当然 gin 和其他框架也不赖)

在知乎和一些技术论坛里也有主张不使用 Iris 框架的文章,大概的内容是 Iris 存在不可预测的安全性问题

今天不讨论这些玩意,反正我个人使用过程中并没有碰到什么安全隐患,反而中意 Iris 的高性能和并发量

具体的实例 demo 可以自行参考官方文档,遵循 MVC 架构

这就不废话了,下面开始 Iris 编写个人博客第一弹,配置篇

8b4ce80f45d23568bfcb057f10003ceb.png

image

项目结构

开始编码之前总是需要定义一下总体的项目结构

93cc97be74d92f1ec727c7221295b4fb.png

项目结构

可以看到除了 配置文件,数据库连接 和 主执行文件 之外

剩下的就是 控制器(controller),视图(server) 和 模型(models)

这就是所谓的 MVC 模型了

今天就先来看看配置文件如何去写(个人习惯) 以及 配置数据库连接

其实这也是大多数 web 开发者一开始做的事情

配置文件

Iris 提供几种配置文件的格式,我个人使用 .json 或 .yaml

在根目录下新建 config.json 文件

简单配置一下端口 和 静态目录

# config.json

{

"app_name": "Blog",

"port": "5000",

"static_path": "/static",

"mode": "dev"

}

config

加载到 config.go 文件

在 config 目录下新建 config.go 文件

package config

import (

"encoding/json"

"os"

)

//服务端配置

type AppConfig struct {

AppName string `json:"app_name"`

Port string `json:"port"`

StaticPath string `json:"static_path"`

Mode string `json:"mode"`

}

//初始化服务器配置

func InitConfig() *AppConfig {

file, err := os.Open("F:/Go_work/src/Iris框架/config.json")

if err != nil {

panic(err.Error())

}

decoder := json.NewDecoder(file)

conf := AppConfig{}

err = decoder.Decode(&conf)

if err != nil {

panic(err.Error())

}

return &conf

}

连接 Mysql 数据库

在 datasource 目录下新建 db.go 编写数据库连接

package datasource

import (

"Iris_web/models"

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jinzhu/gorm"

_ "github.com/lib/pq"

)

var Db *gorm.DB

func init(){

var err error

mysql_conn := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", "root","wocao", "127.0.0.1", 3306, "iris_blog")

//赋值给全局变量 Db 没有 := 就是赋值

Db, err = gorm.Open("mysql", mysql_conn)

if err != nil{

panic(err)

}

fmt.Println("初始化数据库成功......")

Db.LogMode(false) //是否开启log

Db.AutoMigrate( &models.Article{},&models.G_count{}) //自动迁移 跟py一样

}

配置部分结束,是不是很简单

欢迎转载,但要声明出处,不然我顺着网线过去就是一拳。

个人技术博客:http://www.gzky.live

有疑问加站长微信联系(非本文作者)

5c5fbae790ec0313d6ee17e8b3dd9ba1.png

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_35433930/article/details/113590574
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-15 21:35:28
  • 阅读 ( 1547 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢