美文网首页
使用 Iris 打造一款个人博客(配置篇)

使用 Iris 打造一款个人博客(配置篇)

作者: 鬼子口音 | 来源:发表于2020-01-08 15:36 被阅读0次

    Golang:使用 Iris 打造一款个人博客(一)

    Iris 号称世界第一快的框架

    实际上测试对比几款高性能的 go web 框架,Iris 框架的响应速度确实优于其他框架(当然 gin 和其他框架也不赖)
    在知乎和一些技术论坛里也有主张不使用 Iris 框架的文章,大概的内容是 Iris 存在不可预测的安全性问题
    今天不讨论这些玩意,反正我个人使用过程中并没有碰到什么安全隐患,反而中意 Iris 的高性能和并发量

    官方源码文档 GitHub:https://github.com/kataras/iris

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

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

    image

    项目结构

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

    项目结构

    可以看到除了 配置文件,数据库连接 和 主执行文件 之外
    剩下的就是 控制器(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

    相关文章

      网友评论

          本文标题:使用 Iris 打造一款个人博客(配置篇)

          本文链接:https://www.haomeiwen.com/subject/eidsactx.html