iris 综合项目实战:项目初始化

iris 综合项目实战:项目初始化

Posted by 锐玩道 on April 22, 2021

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人博客

安装

Iris 是一个跨平台的软件。唯一的需求就是 Go 语言(1.13+)

进入项目根目录:

$ cd your_project_path
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct         # golang 代理
$ go get github.com/kataras/iris/v12@master

或者编辑 go.mod 文件

module your_project_name

go 1.13

require (
    github.com/kataras/iris/v12 v12.0.0
)

执行命令 go build

如果安装失败,不妨执行清除模块缓存

go clean –modcache # 清空 mod 文件夹下内容

项目版本更新

go-get 命令来获取最新的 Iris 版本。 Master 分支通常足够稳定了。

$ go get -u github.com/kataras/iris/v12@latest

参照 mvc-login 初始化 项目代码

进入你的项目路径 your_project_path

复制 iris 下mvc-login demo 文件夹 GOPATH/pkg/mod/github.com/kataras/iris/v12@v12.1.8/_examples/mvc/login 到项目路径下 your_project_path

  • 该目录下新建 conf 文件夹
    • 文件夹下新建 db.go 数据库配置文件
  • datamodels 文件夹名 改成 models
  • repositories 改成 dao
  • 根据需要修改 文件夹下 package和类命名

建立数据库表

# 表结构
CREATE TABLE `player_info` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name_zh` varchar(50) NOT NULL DEFAULT '' COMMENT '中文名',
  `name_en` varchar(50) NOT NULL DEFAULT '' COMMENT '英文名',
  `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
  `birthday` varchar(50) NOT NULL DEFAULT '' COMMENT '出生日期',
  `height` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '身高,单位cm',
  `weight` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '体重,单位g',
  `club` varchar(50) NOT NULL DEFAULT '' COMMENT '俱乐部',
  `jersy` varchar(50) NOT NULL DEFAULT '' COMMENT '球衣号码以及主打位置',
  `country` varchar(50) NOT NULL DEFAULT '' COMMENT '国籍',
  `birthaddress` varchar(255) NOT NULL DEFAULT '' COMMENT '出生地',
  `feature` varchar(255) NOT NULL DEFAULT '' COMMENT '个人特点',
  `moreinfo` text COMMENT '更多介绍',
  `play_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态,默认值 0 正常,1 删除',
  `created_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
  `updated_at` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后修改时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

给数据表添加数据

INSERT INTO `player_info`(`id`, `name_zh`, `name_en`, `avatar`, `birthday`, `height`, `weight`, `club`, `jersy`, `country`, `birthaddress`, `feature`, `moreinfo`, `play_status`, `created_at`, `updated_at`) VALUES (1, '卡卡', 'kk', '/public/img/star/kk.jpeg', '1982-04-22', 192, 84, '巴塞罗那', '18', '巴西', '巴西联邦区伽马', '强壮的身体,快速的奔跑,良好的带球能力和一脚出色的远射,是个很容易进球的超级中场球员。', NULL, 0, 0, 1618283254);
INSERT INTO `player_info`(`id`, `name_zh`, `name_en`, `avatar`, `birthday`, `height`, `weight`, `club`, `jersy`, `country`, `birthaddress`, `feature`, `moreinfo`, `play_status`, `created_at`, `updated_at`) VALUES (2, '郑智', '郑智', '/public/img/star/zhengzhi.jpeg', '1980-08-20', 180, 75, '杭州', '12', '中国', '中国', '郑智不论在中前场哪个位置都能够制造杀机,当他靠近对方大门时则成为查尔顿最有力的中场发动机。', NULL, 0, 0, 1618283248);

生成数据库映射models

根据 Xorm 数据库映射工具使用 内容,于你的项目路径 your_project_path 下新建文件夹 template 配置生成数据库映射配置

template_config 开启 Xorm 数据库映射

lang=go
genJson=1
prefix=

structTemplate.go.tpl 生成数据映射模板

package 



import (
    ""
)



type  struct {

 	 

}


做完上面步骤,在项目根目录 your_project_path下执行数据库映射命令

xorm reverse mysql [数据库用户名]:[用户密码]@/[数据库名]?charset=utf8 conf/template

命令执行完成后,会在默认路径 文件夹models下生成 player_info.go 文件,代码如下:

package models

type PlayerInfo struct {
	Id           int    `xorm:"not null pk autoincr comment('主键ID') INT(10)"`
	NameZh       string `xorm:"not null default '' comment('中文名') VARCHAR(50)"`
	NameEn       string `xorm:"not null default '' comment('英文名') VARCHAR(50)"`
	Avatar       string `xorm:"not null default '' comment('头像') VARCHAR(255)"`
	Birthday     string `xorm:"not null default '' comment('出生日期') VARCHAR(50)"`
	Height       int    `xorm:"not null default 0 comment('身高,单位cm') INT(10)"`
	Weight       int    `xorm:"not null default 0 comment('体重,单位g') INT(10)"`
	Club         string `xorm:"not null default '' comment('俱乐部') VARCHAR(50)"`
	Jersy        string `xorm:"not null default '' comment('球衣号码以及主打位置') VARCHAR(50)"`
	Country      string `xorm:"not null default '' comment('国籍') VARCHAR(50)"`
	Birthaddress string `xorm:"not null default '' comment('出生地') VARCHAR(255)"`
	Feature      string `xorm:"not null default '' comment('个人特点') VARCHAR(255)"`
	Moreinfo     string `xorm:"comment('更多介绍') TEXT"`
	PlayStatus   int    `xorm:"not null default 0 comment('状态,默认值 0 正常,1 删除') TINYINT(4)"`
	CreatedAt    int    `xorm:"not null default 0 comment('创建时间') INT(10)"`
	UpdatedAt    int    `xorm:"not null default 0 comment('最后修改时间') INT(10)"`
}

至此项目目录初始化工作完成,下一节我们将使用 Xorm 进行Dao,Service层封装具体数据库操作