赞
踩
一、配置文件
1、在程序包的创建conf文件夹,配置app.conf
#应用配置,用于定义名字 AppName=配置测试 #运行,生产模式prod[默认],开发模式dev,生产模式可以在网页中展示错误 RunMode=dev #拷贝body数据 CopyRequestBody=true #上传文件缓冲内存大小 MaxMemory=104857600 #修改服务器bannner信息,修改beego服务器名字和版本 ServerName=cc #WEB配置 AutoRender=true #在动态路由的时候没有函数模板文件,自动根据函数名寻找模板文件 ViewsPath=views #默认存放文件的地方 StaticDir=static #默认存放静态文件的地方 #监控配置 beego.Run端口默认8080 HTTPPort=${HTTPPort||9999} #当设置了环境变量之后即可覆盖默认值 HTTPAddr=127.0.0.1 #可以通过类似于C#的特性来准备两套,一套用于生产环境,一套用于开发模式 [dev] HTTPPort=8888 #生产模式下的端口 [prod] HTTPPort=80 #开发模式下的端口
2、调用配置文件
package main import ( "fmt" "github.com/astaxie/beego" ) type HomeController struct { beego.Controller } func main() { fmt.Println(beego.AppConfig.String("MYSQL_HOST")) //获取beego的MYSQL_HOST配置 fmt.Println(beego.AppConfig.Int("MYSQL_PORT")) //使用Int类型获得MYSQL的端口 fmt.Println(beego.AppConfig.Bool("MYSQL_Parse")) //使用自定义配置来设置相关的参数 fmt.Println(beego.AppConfig.DefaultString("MYSQL_HOSTTIME", "127.0.0.1")) fmt.Println(beego.AppConfig.DefaultInt("MYSQL_PORT", 80)) //同理可以得到相同的其他配置参数,当拥有配置参数的时候就直接获取参数,没有配置的是时候得到默认的都那口 beego.Run() }
3、可以使用建立多个conf互相嵌套的方式来创建
(一) mysql.conf
#mysql的配置文件
MYSQL_HOST=127.0.0.1
MYSQL_PORT=120
MYSQL_USER=CAS
MYSQL_PARSE=true
(二)app.conf
#调用mysql的配置文件
include "mysql.conf"
(三) 创建拥有特性标识符的配置文件
main函数,在调用的时候需要加上文件号
package main import ( "fmt" "github.com/astaxie/beego" ) type HomeController struct { beego.Controller } func main() { fmt.Println(beego.AppConfig.String("mysql::MYSQL_HOST")) //获取beego的MYSQL_HOST配置 fmt.Println(beego.AppConfig.Int("mysql::MYSQL_PORT")) //使用Int类型获得MYSQL的端口 fmt.Println(beego.AppConfig.Bool("mysql::MYSQL_Parse")) //使用自定义配置来设置相关的参数 fmt.Println(beego.AppConfig.DefaultString("mysql::MYSQL_HOSTTIME", "127.0.0.1")) fmt.Println(beego.AppConfig.DefaultInt("mysql::MYSQL_PORT", 80)) //同理可以得到相同的其他配置参数,当拥有配置参数的时候就直接获取参数,没有配置的是时候得到默认的都那口 beego.Run() }
mysql.conf
#mysql的配置文件
[mysql]
MYSQL_HOST=127.0.0.1
MYSQL_PORT=120
MYSQL_USER=CAS
MYSQL_PARSE=true
二、简单的用户登录
需要源码在评论区留言
思路讲解:
(一)配置app.conf和sql.conf;
(二)main包为beego入口,跳转到router包(负责绑定路由结构体),绑定之后在Controller包写绑定的方法(登录,跳转主页等方法);
(三)models包主要负责对象的定义(例如数据库对象,User对象等);
Controller包
package controller import ( "cmdb/errors" "cmdb/forms" "cmdb/models" "fmt" "github.com/astaxie/beego" "net/http" ) type AuthController struct { beego.Controller } //认证登录 func (c *AuthController) Login() { form := &forms.LoginForm{} e := errors.New() //如果是get请求,直接请求页面 if c.Ctx.Input.IsGet() { c.TplName = "auth/login.html" } //如果是post请求,验证数据 if c.Ctx.Input.IsPost() { //获取用户提交数据 err := c.ParseForm(form) //解析表单 if err == nil { user := models.GetUser(form.UserName) if user == nil { //用户不存在,将错误添加到map中 e.Add("default", "用户不存在") } else if user.ValidPassword(form.PassWord) { //用户密码正确 fmt.Println("登录成功") c.Redirect("/home/index", http.StatusFound) //跳转主页,返回状态码302 } else { e.Add("default", "密码错误") } } else { e.Add("default", "用户或者密码错误") } //验证成功 //验证失败 } c.Data["form"] = form c.Data["errors"] = e //将值传送给模板 c.TplName = "auth/login.html" //如果是post请求,判断数据库的增删查改 //请求页面 }
遇到的坑:
(一)、数据库的db对象我重新初始化了一次;
(二)、绑定的结构体名字后面不为Controller;
看完如果对自己有所帮助,请点赞支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。