目录 Go的web框架,只需一个可执行的服务就可以在多平台上运行了。支持MVC、构建微服务。被称为速度最快的Go后端开发框架。 官网:https://iris-go.com/ 项目的结构大概可以如下规划: PS: fmt.Printf 会根据后面参数格式化前面的字符串 ,fmt.Println 不会无格式字符串形式输出。 Iris框架
1. Iris简介
Windows 安装设置下代理: go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct go get -u github.com/gin-gonic/gin go get github.com/kataras/iris/ Linux 下安装代理 export GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct go get -u github.com/gin-gonic/gin go get github.com/kataras/iris/ 实在安装有问题的直接GoLang里面import "github.com/kataras/iris" 用IDE来安装^_^ -------------2020.4.26-----------采坑总结 可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。 GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。 GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。 GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。 所以之前设置的go env -w GO111MODULE=on是使用了Go 1.11 之后官方支持的版本管理工具 mod 此时下载的文件啥的会保存在gopath下面的pkg/mod里面。 如果不想用mod工具,把它设置成关闭,然后直接go get -u XXX (但不翻墙,大概率下不全得手动补全)
源码:https://github.com/kataras/iris
文档: https://studyiris.com/doc/
#公司项目 ├─bin # 存放编译后的二进制文件 ├─pkg # 存放编译后的库文件 └─src # 存放源代码文件 ├─github.com └─XXXtech.com # 网站域名 公司或GitHub └─tomasonl# 机构/作者 ├─project1 #项目一 │ ├─ moduleA #模块A │ └─ moduleB #模块B └─project2 #项目二 ├─ moduleA #模块A └─ moduleB #模块B
#个人项目 ├─bin # 编译后的二进制文件 ├─pkg # 编译后的库文件 └─src # 源代码文件 ├─github.com └─tomasonl.com # 网站域名 公司或GitHub └─leo # 机构/作者 ├─project1 #项目一 │ ├─ moduleA #模块A │ └─ moduleB #模块B └─project2 #项目二 ├─ moduleA #模块A └─ moduleB #模块B
2.Iris 实例Demo
package main import "github.com/kataras/iris" func main() { //1.创建app结构体对象 app := iris.New() //2.端口监听 app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) //app.Run(iris.Addr(":8080"))//第一种 //app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) //第二种 } ---------------------------------------------------------- $ go run example.go Now listening on: https://localhost:8080 Application started. Press CTRL+C to shut down.
3.Get、Post、Put和Delete
package main import ( "github.com/kataras/iris" "github.com/kataras/iris/context" ) //main方法 func main() { app := iris.New() //普通Get请求 app.Get("/getRequest",func(context context.Context){ path := context.Path() app.Logger().Info(path) context.WriteString("您的请求路径:"+path) }) //Get请求携带信息 app.Get("/userinfo", func(context context.Context){ userName := context.URLParam("username") pwd := context.URLParam("pwd") context.HTML("用户名:"+userName+" 密码:"+pwd) }) //Post请求-form表单的字段获取 app.Post("/postLogin", func(context context.Context) { name := context.PostValue("name") pwd := context.PostValue("pwd") context.HTML("用户名:"+userName+" 密码:"+pwd) }) //Post请求-Json格式数据 //Json内容:{"name": "leo","age": 18} app.Post("/postJson", func(context context.Context) { //Json数据解析 var person Person if err := context.ReadJSON(&person); err != nil { panic(err.Error()) } context.Writef("获取信息: %#+vn", person) //输出:获取信息: main.Person{Name:"davie", Age:28} }) //Post请求-Xml格式数据 /** * 请求配置:Content-Type到application/xml(可选但最好设置) * 请求内容: * * <student> * <stu_name>leo</stu_name> * <stu_age>18</stu_age> * </student> */ app.Post("/postXml", func(context context.Context) { //XML数据解析 var student Student if err := context.ReadXML(&student); err != nil { panic(err.Error()) } //输出: context.Writef("Received:%#+vn", student) }) //put请求 app.Put("/putinfo", func(context context.Context) { path := context.Path() app.Logger().Info("请求url:", path) }) //delete请求 app.Delete("/deleteuser", func(context context.Context) { path := context.Path() app.Logger().Info("Delete请求url:", path) }) app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) }
%v 字段的值
%+v 字段类型+字段的值
%#+v 结构体名字值+再输出结构体(字段类型+字段的值)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算