Go语言之高级篇beego框架之请求数据处理
1、Controller中数据参数处理
获取参数:
我们经常需要获取用户传递的数据,包括 Get、POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据:
GetString(key string) string GetStrings(key string) []string GetInt(key string) (int64, error) GetBool(key string) (bool, error) GetFloat(key string) (float64, error)
示例:
func (this *MainController) Post() {
jsoninfo := this.GetString("jsoninfo")
if jsoninfo == "" {
this.Ctx.WriteString("jsoninfo is empty")
return
}
}
2、输入名称,直接显示出来
示例:
/routers/router.go
package routers import (
"web/controllers" "github.com/astaxie/beego"
) func init() {
beego.Router("/", &controllers.MainController{})
// beego.Router("/test", &controllers.TestInputController{}, "get:Get;post:Post")
beego.Router("/test_input", &controllers.TestInputController{}, "get:Get;post:Post")
}
controllers/testInput.go
package controllers import (
"github.com/astaxie/beego"
) type TestInputController struct {
beego.Controller
} type User struct {
Username string
Password string
} func (c *TestInputController) Get() {
id := c.GetString("id")
c.Ctx.WriteString("<html>" + id + "<br/>") name := c.Input().Get("name")
c.Ctx.WriteString(name + "</html>") }
执行结果:
#在浏览器中输入:
http://127.0.0.1:8080/test_input?id=nulige
结果:提交会报错。

3、输入用户名和密码直接提交,出结果。
示例:
/routers/router.go
package routers import (
"web/controllers" "github.com/astaxie/beego"
) func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/test_input", &controllers.TestInputController{}, "get:Get;post:Post")
}
controllers/testInput.go
package controllers import (
"github.com/astaxie/beego"
) type TestInputController struct {
beego.Controller
} type User struct {
Username string
Password string
} func (c *TestInputController) Get() {
c.Ctx.WriteString(`<html><form action="http://127.0.0.1:8080/test_input" method="post">
<input type="text" name="Username"/>
<input type="password" name="Password"/>
<input type="submit" value="提交"/>
</form></html>`)
} func (c *TestInputController) Post() {
u := User{}
if err := c.ParseForm(&u); err != nil {
//process error
} c.Ctx.WriteString("Username:" + u.Username + " Password:" + u.Password)
}
执行结果:
#在浏览器中输入:
http://127.0.0.1:8080/test_input?id=nulige
输入: username: nulige, password: nulige
结果:
Username:nulige Password:nulige
4、获取Request Boby里的内容
- 在配置文件里设置 copyrequestbody = true
- 在 Controller 中
示例:
func (this *ObjectController) Post() {
var ob models.Object
json.Unmarsha1(this.Ctx.Input.RequestBody, &ob)
objectid := models.AddOne(ob)
this.Data["json"] = "{\"ObjectId\":\}"" + objectid + "\"}"
this.ServeJSON()
}
Go语言之高级篇beego框架之请求数据处理的更多相关文章
- Go语言之高级篇beego框架安装与使用
一.beego框架 1.beego框架简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...
- Go语言之高级篇beego框架之config、httplib、context
一.httplib 1.配置文件解析 这是一个用来解析文件的库,它的设计思路来自于 database/sql,目前支持解析的文件格式有 ini.json.xml.yaml,可以通过如下方式进行安装: ...
- Go语言之高级篇beego框架之layui框架应用
1.layui前端框架 参考地址:https://www.layui.com
- Go语言之高级篇beego框架之配置beego环境
1.配置beego环境 进入部署目录中 软件部署目录: 把要部署的软件代码,放在src目录下面. 启动项目
- Go语言之高级篇Beego框架之爬虫项目实战
一.爬虫项目 1.爬虫基础 a.网页上面会有相同的数据 b.去重处理 布隆过滤器哈希存储 c.标签匹配: 正则表达式beautiful soup或lxml这种标签提取库 d.动态内容 phantomj ...
- Go语言之高级篇beego框架之view
1.基本语法 go统一使用了{{ 和 }}作为左右标签,没有其它的标签符号. 如果你想要修改为其它符号,可以修改配置文件. 使用.来访问当前位置的上下文 使用$来引用当前模板根级的上下文 2.使用方法 ...
- Go语言之高级篇beego框架之controller调用model
一.controller调用model 开发规范,就该把对数据库的操作写在model文件夹中. 示例: views/main.go package main import ( _ "web/ ...
- Go语言之高级篇beego框架之model设计构造查询
一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...
- Go语言之高级篇beego框架之模型(Models)
一.模型(Models) 1.beego-orm的相关特性 支持 Go 的所有类型存储 -轻松上手,采用简单的 CRUD 风格 -自动 Join 关联表 跨数据库兼容查询 允许直接使用 SQL 查询/ ...
随机推荐
- [转]清理ambari安装的hadoop集群
本文针对redhat或者centos 对于测试集群,如果通过ambari安装Hadoop集群后,想重新再来一次的话,需要清理集群. 对于安装了很多hadoop组件的话,这个工作很繁琐.接下来是我整理的 ...
- 使用exundelete在Linux下恢复删除的文件
原文:https://my.oschina.net/looly/blog/261912 Linux下执行 rm 并不会真正删除,而是将inode节点中的扇区删除,同时释放数据块.在数据块被系统重新分配 ...
- 数论-质数 poj2689,阶乘分解,求阶乘的尾零hdu1124, 求尾零为x的最小阶乘
/* 要求出[1,R]之间的质数会超时,但是要判断[L,R]之间的数是否是素数却不用筛到R 因为要一个合数n的最大质因子不会超过sqrt(n) 所以只要将[2,sqrt(R)]之间的素数筛出来,再用这 ...
- BZOJ4992 [Usaco2017 Feb]Why Did the Cow Cross the Road 最短路 SPFA
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4992 题意概括 在一幅n*n的地图上,Amber从左上角走到右下角,每走一步需要花费时间t,每走完 ...
- <构建之法>阅读笔记6
第九章:项目经理 是讲项目经理的作用功能和重要性,书里面主要讲的是微软的PM(Programe Manager)和其他团队PM(Project Manager)的区别,还介绍了PM的能力要求以及人物, ...
- CSS 3. 文本|字体|背景|定位
1.文本属性和字体属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- Spring日记_01 之 Eclipse下的Tomcat服务器配置 以及 Springmvc和Servlet的使用
安装Tomcat – window – preferences – Server 右键Tomcat v ...
- PHP函数之array_chunk
有时候需要对数组进行按分页处理,之前的做法是计算出数组大小,按分页计算出偏移量,再从起始偏移量处开始遍历页大小个数据.现在不用这么麻烦了,原来PHP函数里有个现成的函数array_chunk可以配合我 ...
- 二分搜索-poj1064
题目大概意思是:给你N个长度的电缆,需要你编写程序 将它分割成 K 根长度相等的小电缆.而我们的目的就是要求出分割出的 最大长度 可以为多少.此处可以应用二分搜索的知识来实现查找最终长度. 代码实现 ...
- Qt学习之信号与槽(一)
Qt学习之信号与槽(一) 目录 QT的信号与槽机制 在窗口的UI设计中操作添加信号和槽 QT的信号与槽机制 QT的两种机制 在Qt和PyQt中有两种通信机制: 低级事件处理机制(low-l ...