Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 66.9MB ·虚拟内存 1301.0MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
我们处理完用户的请求之后,通常我们都会返回 html 代码,然后浏览器就可以显示 html 内容;除了返回 html,在 api 接口开发中,我们还可以返回 json、xml、jsonp 格式的数据。
下面分别介绍 beego 返回不同数据类型的处理方式。
注意:如果使用 beego 开发 api,那么在 app.conf 中设置 AutoRender = false, 禁止自动渲染模板,否则 beego 每次处理请求都会尝试渲染模板,如果模板不存在则报错。
下面是返回 json 数据的例子:
// 定义struct // 如果struct字段名跟json字段名不一样,可以使用json标签,指定json字段名 type User struct { // - 表示忽略id字段 Id int `json:"-"` Username string `json:"name"` Phone string } func (this *UserController) Get() { // 定义需要返回给客户端的数据 user := User{1, "aizws", "13089818901"} // 将需要返回的数据赋值给json字段 this.Data["json"] = &user // 将this.Data["json"]的数据,序列化成json字符串,然后返回给客户端 this.ServeJSON() }
提示:请参考Go处理json数据教程,了解详细的json数据处理方式。
下面是返回 xml 数据的处理方式跟json类似。
例子:
// 定义struct // 如果struct字段名跟xml字段名不一样,可以使用xml标签,指定xml字段名 type User struct { // - 表示忽略id字段 Id int `xml:"-"` Username string `xml:"name"` Phone string } func (this *UserController) Get() { // 定义需要返回给客户端的数据 user := User{1, "aizws", "13089818901"} // 将需要返回的数据赋值给xml字段 this.Data["xml"] = &user // 将this.Data["xml"]的数据,序列化成xml字符串,然后返回给客户端 this.ServeXML() }
提示:请参考Go处理xml数据教程,了解详细的xml数据处理方式。
返回 jsonp 数据,于返回 json 数据方式类似。
例子:
func (this *UserController) Get() { // 定义需要返回给客户端的数据 user := User{1, "aizws", "13089818901"} // 将需要返回的数据赋值给jsonp字段 this.Data["jsonp"] = &user // 将this.Data["json"]的数据,序列化成json字符串,然后返回给客户端 this.ServeJSONP() }
如果我们开发的是网页,那么通常需要返回 html 代码,在 beego 项目中关于 html 视图部分,使用的是模板引擎技术,渲染 html,然后将结果返回给浏览器。
例子:
func (c *MainController) Get() { // 设置模板参数 c.Data["Website"] = "aizws.net" c.Data["Email"] = "aizws@demo.com" // 需要渲染的模板, beego会渲染这个模板,然后返回结果 c.TplName = "index.tpl" }
为 http 请求添加 header
func (c *MainController) Get() { // 通过this.Ctx.Output.Header设置响应头 this.Ctx.Output.Header("Content-Type", "message/http") this.Ctx.Output.Header("Cache-Control", "no-cache, no-store, must-revalidate") }
beego框架 ORM数据库操作:MVC 框架中的M,也即是 Model 模型,负责操作所有数据和服务器进行交互,将请求到的数据传给 Controller。在 beego 框架中,model 主要利用 ORM 进行数据库操作。ORM 即 Object/Relation Mapping,是指对象-关系映射,在 Go 语言中就是将 struct数据类型和数据库记录进行映射。