目录
1 介绍
Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错
借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范.
2 练习
本次练习继续对之前的代码进行改善,主要工作是
通过VIPER读取配置提高,配置更改效率。
配置文件里的相应内容。
server:
port: 1010
datasource:
driverName : mysql
host : 127.0.0.1
port : 3306
database : test
username : root
password :
charset
//配置初始化模块。
func InitConfig() {
WorkDir, _ := os.Getwd()
viper.SetConfigName("application")
viper.SetConfigType("yaml")
viper.AddConfigPath(WorkDir + "/config")
err := viper.ReadInConfig()
if err != nil {
panic(err)
}
}
改装成果
func InitDB() *gorm.DB {
driverName := viper.GetString("datasource.driverName")
host := viper.GetString("datasource.host")
port := viper.GetString("datasource.port")
database := viper.GetString("datasource.database")
username := viper.GetString("datasource.username")
password := viper.GetString("datasource.password")
charset := viper.GetString("datasource.charset")
fmt.Println(driverName, host, port, database)
args := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true",
username,
password,
host,
port,
database,
charset)
fmt.Println(args)
db, err := gorm.Open(driverName, args)
if err != nil {
panic("failed to connect database!,err:" + err.Error())
}
db.AutoMigrate(&Model.User{})
DB = db
return db
}
友情援助
有问题的可以关注公众号,博主会在24小时内回复。