go语言beego框架web开发语法笔记示例
时间:2022-10-28 09:53:49|栏目:Golang|点击: 次
两个跳转语法
第一个参数是请求路径,第二个参数是http状态码。
c.Redirect("/login",400) //重定向 c.TplName = "login.html"
模型创建
设置主键 `pk`
设置自增 `auto`
注意:当Field类型为int,int32,int64,uint,uint32,uint64时,可以设置字段为自增健,当模型定义中没有主键时,符合上述类型且名称为Id的Field将视为自增健。
设置默认值 `default(1111)`
设置长长度 `orm:size(100)`
设置允许为空 `null`,数据库默认是非空,设置null后可变成`ALLOW NULL`
设置唯一 `orm:"unique"`
设置浮点数精度 `orm:"digits(12);decimals(4)"` //总共12位,四位是小数
设置时间 `orm:"auto_now_add;type(datetime)"`
`orm:"auto_now;type(date)"`
注意:
auto_now 每次model保存时都会对时间自动更新
auto_now_add 第一次保存时才设置时间
设置时间的格式:type
# 案例 type User struct { beego.Controller Id int `orm:"pk;auto"` //主键且自增 Name string `orm:"size(20)"` //长度20 CreateTime time.Time Count int `orm:"defaule(0);null"` //默认为0,可以为空 }
获取post请求传过来的值
获取字符串
c.GetString("userName") //获取字符串 func (c*MainController) AddAritcle() { c.Data["name"] = c.GetString("userName") c.Data["pwd"] = c.GetString("passwd") beego.Info("用户名:",c.Data["name"]) beego.Info("密码",c.Data["pwd"]) c.TplName = "success.html" }
获取文件
f,h,err :=c.GetFile("file_name") //获取文件 //f:文件句柄 //h:文件信息 //err:错误信息 defer f.Close() if err != nil{ beego.Info("上传文件失败") }else { c.SaveToFile("file_name","./staic/img/"+h.Filename) }
Html
就是别忘记在你的 form 表单中增加这个属性 enctype="multipart/form-data",否则你的浏览器不会传输你的上传文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登陆</title> </head> <body> <div> <div style="position:absolute;left:50%; top:50%;"> <form action="/addAritcle" method="post" enctype="multipart/form-data"> 用户名:<input type="text" name="userName"> <p></p> 密码:<input type="password" name="passwd"> <input type="file" name="uploadfilename"> <p></p> <input type="submit" value="注册"> </form> </div> </div> </body> </html>
获取文件后缀
fileext := path.Ext(h.Filename)
orm查询表所有数据
var table_lis []models.User _,err := o.QueryTable("User").All(&table_lis) if err !=nil{ beego.Info("查询文章出错") return } beego.Info(table_lis)
前端循环语法
c.Data["table_lis"] = table_lis //业务逻辑传过来的值 {{range .table_lis}} //循环访问 <tr> <td>{{.Name}}</td> <td>{{.PassWord}}</td> </tr> {{end}}
前端格式化时间
<td>{{.time.Format "2006-01-02"}}</td> //格式化时间
前端url传值方式
<td><a href="/addAritcle?id={{.Id}}" rel="external nofollow" ></a></td>