前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Iris框架极速入门

Iris框架极速入门

作者头像
微客鸟窝
发布2021-08-18 15:44:25
2.3K0
发布2021-08-18 15:44:25
举报
文章被收录于专栏:Go语言指北

Iris 框架

官网:https://iris-go.com 框架文档:https://github.com/iris-contrib/examples

目录结构

手动创建一个mvc目录结构

「M」

  • datamodels:只存放结构体
  • repositories:数据库相关操作文件
  • services:业务逻辑 以上三个文件夹可以综合为M层
  • web
    • controllers :控制器层 「C」
    • views :视图层 「V」

下载Iris框架:go get github.com/kataras/iris/v12@master

入口文件

入口文件为根目录下 main.go

main.go :

代码语言:javascript
复制
package main

import (
 "github.com/kataras/iris/v12"
 "github.com/kataras/iris/v12/mvc"
 "iris/web/controllers"
)

func main()  {
 //新建iris
 app:=iris.New()
 //设置错误等级
 app.Logger().SetLevel("debug")
 //注册模板目录
 app.RegisterView(iris.HTML("./web/views",".html"))
 //注册控制器
 mvc.New(app.Party("/hello")).Handle(new(controllers.BookController))
 //启动服务
 app.Run(
  iris.Addr("localhost:8080"), //监听8080端口
 )
}

datamodels\book.go

代码语言:javascript
复制
package datamodels

type Book struct {
 Name string
}

repositories\book_repository.go

代码语言:javascript
复制
package repositories

import "iris/datamodels"

type BookRepository interface {
 GetBookName() string
}

type BookManager struct {
}

func NewBookManager() BookRepository {
 return &BookManager{}
}

func (m *BookManager) GetBookName() string {
 //模拟赋值给模型
 book := &datamodels.Book{Name: "微客鸟窝"}
 return book.Name
}

services\book_service.go

代码语言:javascript
复制
package services

import (
 "fmt"
 "iris/repositories"
)

type BookService interface {
 ShowBookName() string
}

type BookServiceManger struct {
 repo repositories.BookRepository
}

func NewBookServiceManger(repo repositories.BookRepository) BookService {
 return &BookServiceManger{repo:repo}
}

func (m *BookServiceManger) ShowBookName() string {
 fmt.Println("获取的名称为:"+m.repo.GetBookName())
 return "获取的名称为:"+m.repo.GetBookName()
}

web\controllers\book_controller.go

代码语言:javascript
复制
package controllers

import (
 "github.com/kataras/iris/v12/mvc"
 "iris/repositories"
 "iris/services"
)

type BookController struct{

}

func (c *BookController) Get() mvc.View {
 bookRepository := repositories.NewBookManager()
 bookService := services.NewBookServiceManger(bookRepository)
 BookResult := bookService.ShowBookName()
 return mvc.View{ //渲染模板
  Name:"/book/index.html",
  Data:BookResult,
 }
}

web\views\book\index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>{{.}}</h2>
</body>
</html>

运行go run main.go

浏览器访问 http://localhost:8080/hello

一个简单的 iris mvc 例子就此完成。希望对诸位有所帮助。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微客鸟窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Iris 框架
    • 目录结构
      • 入口文件
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档