1.简介
先说我是一个PHPSir,闲来无事想研究研究Beego这个框架,目的是想通过这样一个MVC框架来学习go的基本使用和练习一下go的基本语法和基本的业务处理逻辑,因为直接撸原生代码烦躁无味,我相信做出东西会对自己是一种激励并且基础语法也会有相应的提升,通过这样一个框架来造一个简单的博客,可能更新时间有些缓慢还望见谅。
安装就先不讲了,自行百度。
2.好的资源你懂得
![](https://img.haomeiwen.com/i10306662/c8515b80519c9de8.png)
3.一顿操作猛如虎
1.主要目录
![](https://img.haomeiwen.com/i10306662/ef62cb7631a1df08.png)
2.路由
package routers
import (
"blog/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/admin_login", &controllers.LoginController{})
}
3.
package controllers
import (
"github.com/astaxie/beego"
"blog/models/admin"
"github.com/astaxie/beego/validation"
"log"
)
// 接收参数构造体
type loginParams struct {
adminName string
adminPassword string
}
// 登录控制器
type LoginController struct {
beego.Controller
models.LoginModel
}
// 显示登录页面
func (this *LoginController) Get() {
this.TplName = "login/login.html"
}
// 接收登录页面的信息
func (this *LoginController) Post(){
params := loginParams{this.GetString("admin_name"), this.GetString("admin_password")}
// 验证不通过重定向到登录页面
if !checkParams(params) {
//this.Ctx.WriteString("我执行了");
this.TplName = "login/login.html"
}
}
// 验证登录参数
func checkParams(params loginParams) bool {
valid := validation.Validation{}
valid.Required(params.adminName, "adminName")
valid.Required(params.adminPassword, "adminPassword")
valid.MaxSize(params.adminName, 1, "adminNameMax")
valid.MaxSize(params.adminPassword, 15, "adminNamePassword")
if valid.HasErrors() {
// 如果有错误信息,证明验证没通过
// 打印错误信息
for _, err := range valid.Errors {
log.Println(err.Key, err.Message)
}
return false;
}
return true;
}
我就不具体介绍了,下载下来代码,对比着目录然后查文档就可以了,我只提供我的学习思路
4.效果
运行Beego
image.png
访问
image.png
测试
刚才我啥也没输入点了一下登录
限制代码
image.png
这里是命令行输出的日志信息
image.png
网友评论