首页 > 其他分享 >Iris框架的学习笔记(快速入门)

Iris框架的学习笔记(快速入门)

时间:2024-11-21 18:07:04浏览次数:1  
标签:username Iris 入门 app 路径 ctx 笔记 参数 请求

Iris类似于Flask框架,使用函数作为方法的入口
实例化一个app主类,通过app.方法请求类型(地址,触发函数) 来匹配请求
例如:

app.Get("/user/{name}", func(ctx iris.Context) {
        name := ctx.Params().Get("name")
        ctx.Writef("Hello %s", name)
    })

其中获取请求的参数,主要有路径参数和字符串参数,表单参数,Json参数,文件参数

路径参数

在请求中的触发函数中可以添加上下文入参,iris.Context
比如
app.Get("/user/{username}" , func(ctx iris.Context))
如此利用上下文ctx.Params().get("username")来获取路径参数
路径可以限制参数类型,比如app.Get("/user/{username:string}") ,则限定了username为string

字符串拼接参数

比如请求链接是:http://localhost:8080/welcome?username=Jelly233&password=233
使用ctx.URLParamDefault("username"),ctx.URLParamDefault("password")均可以获取参数

表单参数

表单参数比如是username,password
通常使用ctx.PostValue("username"),ctx.PostValue("password")获取

Json参数

使用ctx.ReadJson(接收对象),其中接收对象的属性需要标注映射字段(模型绑定)
比如,使用`json:key`来标注

type Person struct {
    Name string `json:name`
    Pwd  string `json:pwd`
}

文件参数

类似二进制文件的请求,通常使用ctx.FormFile(key)来读取,响应值分别是file,header,err
注意文件上传后使用defer file.Close()来关闭文件流

额外注意文件下载,需要使用ctx.SendFile(file文件流,文件名)来发送

对于响应结果的处理

返回HTML数据: ctx.HTML(标签内容)
返回JSON数据:  ctx.Json(iris.Map{k:v,k:v})
返回XML数据:   ctx.XML(map类型数据)
返回string数据: ctx.WriteString(str) 

路由功能

和flask一样,iris也需要路由功能来实现接口匹配
路由方式多种多样,如下有常用几种

1.handle方式匹配方法

app.Handle(GET,POST等请求的字符串,请求路径,触发函数)

2.常用的自定义表达式获取路由

app.Get(复杂路径表达式,触发函数)

3.路由组(组合多级请求路径)

userParty := app.Party(一级请求路径,触发函数)
触发函数中可以继续Party组合下一级请求参数
或者一级触发函数中写context.Next()
继续使用userParty.Get(二级请求路径,触发函数),处理业务逻辑
如此构成的接口就是包含多级请求路径的

MVC包的使用

iris的mvc包是使用语义匹配方法
与SpringMVC不同,它不使用注解,而是使用有实际操控意义的方法名来定义接口

func (uc *UserController) GetInfo() JsonResult {}
那么这条接口匹配的就是http://localhost:8082/info这个请求路径
语义有要求,如必须是开头大写的驼峰,开头必须是请求方法类型
通过mvc.Configure(app.Party(请求路径))来将Controller绑定到mvc上
或者使用mvc.New(app).Handle(new(xxxController))绑定

 

标签:username,Iris,入门,app,路径,ctx,笔记,参数,请求
From: https://www.cnblogs.com/lxl-233/p/18561262

相关文章

  • 【机器学习】SVM对Iris鸢尾花数据集实现多分类
    目标本文旨在掌握如何利用Scikit-learn库构建和训练SVM分类器,并评估其在分类任务中的表现。环境Python3.xScikit-learn库(sklearn)JupyterNotebook或类似IDE(用于代码编写和结果展示)数据集使用sklearn提供的鸢尾花(Iris)数据集。该数据集包含150条记录,每条记录有4个特征(萼......
  • 【机器学习】利用逻辑回归对iris鸢尾花数据集进行分类
    目标本文旨在通过实现一个基础的逻辑回归分类模型,了解并应用逻辑回归模型,完成从数据加载、预处理到训练与评估的整个流程。通过使用Scikit-learn的逻辑回归模型,掌握如何进行模型训练与预测。学会评估模型性能,理解准确率、混淆矩阵及分类报告的含义。掌握混淆矩阵的可视化技术,......
  • Java从入门到放弃之 IO (三)------- 绝对看的懂,看不懂欢迎私信
    Java从入门到放弃之IO(三)Java从入门到放弃之IO(三)装饰器模式问题背景解决方案就是引入装饰器模式IO流关闭问题Java从入门到放弃之IO(三)装饰器模式在上一篇我们引入了装饰器模式的定义。那么这一章我们进一步,装饰器模式解决什么问题?以及为什么JavaIO要使用装......
  • Python 入门(小白版)の7个基础代码 @Kerin森森
    Python,据说是很好入门的一门编程语言,so它也变成了0基础的我(@Kerin森森)的入门选择,在这里分享一下自己的一些学习记录and心得吧。如果你也和我一样是初学者,那就跟森森一起学习一起进步吧!1.第一个Python程序:HelloWorld每个程序员的旅程几乎都是从打印“Hello,World!”开始的......
  • 数据结构与算法——二分查找(自学笔记)
    本文参考二分查找-LeetBook-力扣(LeetCode)全球极客挚爱的技术成长平台基本概念前提条件:数组必须是有序的(升序或降序均可)。核心思想:每次比较中间元素与目标元素的关系,将查找区间一分为二。根据目标元素与中间元素的大小关系,决定接下来查找的区间是左半部分还是右半......
  • 前端开发调试之 PC 端调试学习笔记
    一、引言在前端开发过程中,调试是至关重要的一个环节。它能帮助我们快速定位代码中的问题,无论是页面布局错乱、交互效果异常还是性能不佳等情况,通过有效的调试手段都可以找到根源并进行修复。而在PC端进行调试有着其特定的方法和技巧,以下就是关于前端开发中PC端调试的详细......
  • 【力扣热题100】[Java版] 刷题笔记-234. 回文链表
    题目:234.回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。解题思路回文定义:是指正读和反读都相同的字符序列。将链表数据获取出来,再通过前后指针向中间遍历,数据一致,则是回文;如果不一致则不是回文。......
  • MyBatis-Plus 学习笔记-注解配置
    本文详细介绍了MyBatisPlus注解的用法及属性。@TableName(表名称)该注解用于指定实体类对应的数据库表名。当实体类名与数据库表名不一致,或者实体类名不是数据库表名的驼峰写法时,您需要使用这个注解来明确指定表名。/***数据库表相关*@Documented表示该注解将被javad......
  • 面向服务的软件工程——巨详细讲解商务流程建模符号 (BPMN),一篇章带你入门BPMN!!!(week1)
    文章目录一、前言二、重点概念三、BPMN元素讲解流对象1.活动任务(Task)子流程(sub-process)多实例活动连接对象序列流消息流关联泳道Artifacts数据对象组(Group)事件(Events)启动事件中间事件结束事件边界事件边界事件1边界事件2......
  • 八万字解析CAN总线协议·从入门到实战保姆级教学(源码可直接移植使用)
    目录1. 简介2. CAN物理层特性2.1 CAN总线拓扑图2.2 CAN硬件电路2.3 CAN电平标准2.4 CAN收发器-TJA1050(高速CAN)2.5 ISO11898与11519-2对比3. CAN总线数据帧格式3.1 数据帧3.1.1 帧起始3.1.2 仲裁段3.1.3 控制段3.1.4 数据段3.1.5 C......