Go语言之高级篇beego框架之controller调用model
一、controller调用model
开发规范,就该把对数据库的操作写在model文件夹中。
示例:
views/main.go
package main import (
_ "web/routers"
"github.com/astaxie/beego"
) func main() {
beego.Run()
}
routers/router.go
package routers import (
"web/controllers"
"github.com/astaxie/beego"
) func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/test_model", &controllers.TestModelController{}, "get:Get;post:Post")
}
models/user.go
package models import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
) //由于model这个名字叫 UserInfo 那么操作的表其实 user_info
type UserInfo struct {
Id int64
Username string
Password string
} func init() {
orm.Debug = true // 是否开启调试模式 调试模式下会打印出sql语句
orm.RegisterDataBase("default", "mysql", "root:qwe!23@tcp(127.0.0.1:3306)/test?charset=utf8", 30)
orm.RegisterModel(new(UserInfo))
} func AddUser(user_info *UserInfo) (int64, error) {
o := orm.NewOrm()
id, err := o.Insert(user_info)
return id, err
}
在controllers中调用models
controllers/testModel.go
package controllers import (
"web/models" "github.com/astaxie/beego"
) type TestModelController struct {
beego.Controller
} func (c *TestModelController) Get() {
user := models.UserInfo{Username: "jojo", Password: "123456"}
models.AddUser(&user) c.Ctx.WriteString("call model success!")
}
执行结果:
http://127.0.0.1:8080/test_model
返回结果:
call model success!
查看数据库中是否插入成功。
mysql> select * from user_info;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | nulige | 123456 |
| 2 | jojo | 123456 |
+----+----------+----------+
2 rows in set (0.00 sec)
示例2:全局连接实例
models/user.go
package models import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
) //全局连接实例
var (
db orm.Ormer
) //由于model这个名字叫 UserInfo 那么操作的表其实 user_info
type UserInfo struct {
Id int64
Username string
Password string
} //实例
func init() {
orm.Debug = true // 是否开启调试模式 调试模式下会打印出sql语句
orm.RegisterDataBase("default", "mysql", "root:qwe!23@tcp(127.0.0.1:3306)/test?charset=utf8", 30)
orm.RegisterModel(new(UserInfo))
db = orm.NewOrm()
} //方法
func AddUser(user_info *UserInfo) (int64, error) {
id, err := db.Insert(user_info)
return id, err
}
controllers/testModel.go
package controllers import (
"web/models" "github.com/astaxie/beego"
) type TestModelController struct {
beego.Controller
} func (c *TestModelController) Get() {
user := models.UserInfo{Username: "limei", Password: "123456"}
models.AddUser(&user) c.Ctx.WriteString("call model success!")
}
#执行结果:
http://127.0.0.1:8080/test_model call model success!
检查数据库是否插入成功
mysql> select * from user_info;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | nulige | 123456 |
| 2 | jojo | 123456 |
| 3 | limei | 123456 |
+----+----------+----------+
3 rows in set (0.00 sec)
Go语言之高级篇beego框架之controller调用model的更多相关文章
- Go语言之高级篇beego框架之Controller
一.Controller 控制器 Controller等同于Django里的view,处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller.写controller的时 ...
- 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框架之model设计构造查询
一.model设计构造查询 QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器.在不影响代码可读性的前提下用来快速的建立 SQL 语句. QueryBuilder 在功能上与 ORM ...
- Go语言之高级篇beego框架之模型(Models)
一.模型(Models) 1.beego-orm的相关特性 支持 Go 的所有类型存储 -轻松上手,采用简单的 CRUD 风格 -自动 Join 关联表 跨数据库兼容查询 允许直接使用 SQL 查询/ ...
随机推荐
- java多线程快速入门(一)
1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...
- listbox或datagrid内容双击事件绑定
====listbox=== <DataTemplate> <Border Width="350" Height="230" Margin=& ...
- php安全篇过滤用户输入的参数(转)
规则 1:绝不要信任外部数据或输入 关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据.外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据.在采取措 ...
- POJ 3050 Hopscotch【DFS带回溯】
POJ 3050 题意: 1.5*5的方阵中,随意挑一格,记住这个格子的数字 2.可以上下左右走,走5次,每走一次记录下所走格子的数字 3.经过以上步骤,把所得6个数字连起来,形成一串数字.求共可以形 ...
- bozj 1823(未完成)
题意: 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专 ...
- day8--socket网络编程进阶
socket:socket就是实现服务器和客户端数据的交换,服务器端接收并发送数据,客户端发送并接收数据,并且需要注意的是,在python3中,socket值接收字节.因为客户端在发送连接给服务器的时 ...
- 如何安装破解Unity, 以5.6.1为例
1.Unity官方网址:http://unity3d.com 系统会根据网址IP,自动转到中国区,网址变为:http://unity3d.com/cn/ 点击“获取Unity” 2.选择Person ...
- 浅谈html5 video 移动端填坑记
这篇文章主要介绍了浅谈html5 video 移动端填坑记,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 本文介绍了html5 video 移动端填坑记,分享给大家,具体 ...
- HDU 1051 Wooden Sticks 造木棍【贪心】
题目链接>>> 转载于:https://www.cnblogs.com/Action-/archive/2012/07/03/2574800.html 题目大意: 给n根木棍的长度 ...
- 006.ks.cfg文件相关
一 图形化生成ks.cfg文件 [root@server ~]# yum -y install system-config-kickstart #安装图形化kickstart工具 [root@serv ...