gin入门
go get -u github.com/gin-gonic/gin
源码解析:
package main
//简单的几行代码,就可以实现web服务
import (
"github.com/gin-gonic/gin" //程序所需要的导包
)
func Hello(context *gin.Context) { //gin.Context - 把请求和响应都封装到gin.Context上下文环境中了
//对页面的渲染效果(多种),你要给浏览器响应什么效果
context.String(200, "Hello World")
}
func main() {
//r := gin.Default()
//r.GET("/", func(context *gin.Context) {
// context.String(200, "Hello World")
//})
//r.Run()
//Default()返回的是一个引擎Engine,它是框架非常重要的数据结构,是框架的入口。
//引擎 - 框架核心发送机 - 默认服务器 - 整个web服务都是由它来驱动的
//Default()底层调用了New(),相当于New()的升级,New()返回的是一个引擎,在此基础上多增加了中间件处理-engine.Use(Logger(), Recovery())
r := gin.Default()
//r := gin.New()
//路由:通过访问"/"的GET请求走这一条处理逻辑,走对应的函数中的内容
//"/" : 路由规则 函数:路由函数
//路由请求方式:GET、POST、DELETE、PATCH、PUT、OPTIONS、HEAD、Any
//函数:可以直接写匿名函数,还可以在外部定义函数使用
//r.GET("/", func(context *gin.Context) {
// context.String(200, "Hello World")
//})
//函数:路径按照自己项目的规则去定义 "/" "/user/demo"
r.GET("/", Hello)
//启动引擎 ,服务器启动
//Run可以传入参数:host+port
r.Run("127.0.0.1:8080")
}
gin也提供了类似spring framework前后端开发功能
GOORM : Gitee 极速下载/goorm
go get github.com/astaxie/goorm
Connect
orm := goorm.NewORM("127.0.0.1", "3306", "DATABASE", "USERNAME", "PASSWORD", "utf8")
Change Database
orm.SelectDb("test2")Model a struct after a table in the db
type Person struct { Id int64 Name string Age int64 }Create an object and save it
var someone Person someone.Name = "john" someone.Age = 20 orm.Save(&someone)Fetch a single object
var person1 Person orm.Get(&person1, "id = ?", 3) var person2 Person orm.Get(&person2, 3) // this is shorthand for the version above var person3 Person orm.Get(&person3, "name = ?", "john") // more complex query var person4 Person orm.Get(&person4, "name = ? and age < ?", "john", 88) // even more complexFetch multiple objects
var bobs []Person err := orm.GetAll(&bobs, "name = ?", "bob") var everyone []Person err := orm.GetAll(&everyone, "") // use empty string to omit "where" clauseSaving new and existing objects
person2.Name = "Jack" // an already-existing person in the database, from the example above db.Save(&person2) var newGuy Person newGuy.Name = "that new guy" newGuy.Age = 27 db.Save(&newGuy) // newGuy.Id is suddenly valid, and he's in the database now.