zoukankan      html  css  js  c++  java
  • iris基础学习

    package main
    
    import (
        "fmt"
        "github.com/kataras/iris/v12"
        "github.com/kataras/iris/v12/context"
    )
    
    func main() {
        app := iris.New()
        //Handle就是自己定义请求方式后边跟路由,写匿名函数
        app.Handle("GET", "/userInfo", func(context context.Context) {
    
        })
    
        //正则表达式请求方式
        app.Get("/hello/{name}", func(context context.Context) {
            name := context.Params().Get("name")
            //path :=context.Path()
            //将路由获取的所有内容返回到前段
            //context.WriteString(path)
            context.HTML("<h1>" + name + "<h1>")
        })
        //正则表达式对前段发来的数据进行一个类型的限制,大括号内左边为数据右边为限制类型
        app.Get("/hello/{name:bool}", func(context context.Context) {
            asd, err := context.Params().GetBool("name")
            //path :=context.Path()
            //将路由获取的所有内容返回到前段
            //context.WriteString(path)
            if err != nil {
                context.StatusCode(iris.StatusNonAuthoritativeInfo)
                return
            }
            if asd {
                context.WriteString("登录")
            } else {
                context.WriteString("未登录")
            }
    
        })
        //正则表达式所支持的数据类型
    
    
    
        app.Get("/RetRequest", func(context context.Context) {
            //处理git请求,请求的url为RetRequest
            path := context.Path()                   //获取当前请求路径
            app.Logger().Info(path)                  //日志在golang的窗口打印当前路径
            username := context.URLParam("username") //获取git请求的内容
            password := context.URLParam("password") //获取git请求的内容
            app.Logger().Info(username)
            app.Logger().Info(password)
    
        })
        //处理from表单的数
        app.Post("login", func(context context.Context) {
            name := context.PostValue("name") //获取post请求体中的form表单数据
            pwd := context.PostValue("pwd")   //获取post请求体中的form表单数据
            fmt.Println(name)
            fmt.Println(pwd)
        })
    
        //处理jason格式的数据
        app.Post("postJson", func(context context.Context) {
    
            //json数据解析
            var person Person //创建了一个结构体Person名字和前段传过来的一样
            jsonObj := context.ReadJSON(person)
            //获取json数据
            fmt.Println(jsonObj)
    
        })
    
        //处理xml个数数据
        app.Post("postXml", func(context context.Context) {
            var personXml Person
            xmlObj := context.ReadXML(personXml)
            context.Writef("", xmlObj)
        })
        //给前端直接返回json数据
        app.Get("getJson", func(contest context.Context) {
            contest.JSON(iris.Map{"message": "hello word", "requestCode": "200"})
        })
        //给前端返回xml格式数据
        app.Get("getXml", func(contest context.Context) {
            contest.XML(Person{Name: "yangxin", Age: 123})
        })
    
        //路由分发主路由为users
        users := app.Party("/Users", func(context context.Context) {
            //执行下一级请求
            context.Next()
        })
        //done当你用户请求的任何一个方法后,再该请求中出现了context。next之后就会执行done这方法
        users.Done( func(context context.Context) {
            context.Next()
        })
    
    
    
    
        //路由分发到注册接口
        users.Get("register", func(context context.Context) {
    
            //执行done方法
            context.Next()
    
        })
        //路由分发到登录接口
        users.Post("login", func(context context.Context) {
    
        })
    
        //done
    
    
        //监听端口8080,必须放在程序执行的后边
        app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
    
    }
    
    type Person struct {
        Name string
        Age  int
    }
  • 相关阅读:
    MySQL 5.6 Windows 安装 配置 试用
    abp Could not cast or convert from System.Int64 to System.Collections 对不起,在处理你的请求期间,产生了一个服务器内部错误!
    using Volo.Abp.Application.Services;中 没有IAsyncCrudAppService 方法
    ComponentModel.DataAnnotations.Schema 找不到
    VS2017--无法启动程序dotnet.exe ........web 502
    Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
    重绘 提示 DockedBarControl Dev控件
    GetHtml
    C# 相似对象赋值 通过table 互转 另辟蹊径 垃圾简单代码
    数据库 无表 获取时间列表
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12802531.html
Copyright © 2011-2022 走看看