Beego学习笔记——Config
本文为转载,原文地址:Beego学习笔记——Config
配置文件解析
这是一个用来解析文件的库,它的设计思路来自于database/sql,目前支持解析的文件格式有ini、json、xml、yaml,可以通过如下方式进行安装:
go get github.com/astaxie/beego/config
如何使用
首先初始化一个解析器对象
iniconf, err := NewConfig("ini", "testini.conf")
if err != nil {
t.Fatal(err)
}
然后通过对象获取数据
iniconf.String("appname")
解析器对象支持的函数有如下:
Set(key, val string) error
String(key string) string
Int(key string) (int, error)
Int64(key string) (int64, error)
Bool(key string) (bool, error)
Float(key string) (float64, error)
DIY(key string) (interface{}, error)
appname="beegotest"
pageoffset=
package utils import (
"github.com/astaxie/beego/config"
"fmt"
)
var BConfig config.Configer
func init(){
var err error
BConfig, err = config.NewConfig("ini", "app.conf")
if err != nil{
fmt.Println("config init error:", err)
}
}
在这里,我们需要引入"github.com/astaxie/beego/config”
func GetConfig(args []string)int{
if args[] == "-int"{
intConf, err := utils.BConfig.Int(args[])
if err != nil{
fmt.Println("get type of int from config error:",err)
}else {
fmt.Println(intConf)
}
}else if args[] == "-int64"{
int64Conf, err := utils.BConfig.Int64(args[])
if err != nil{
fmt.Println("get type of int64 from config error:",err)
}else {
fmt.Println(int64Conf)
}
}else if args[] == "-bool"{
boolConf, err := utils.BConfig.Bool(args[])
if err != nil{
fmt.Println("get type of bool from config error:",err)
}else {
fmt.Println(boolConf)
}
}else if args[] == "-float"{
floatConf, err := utils.BConfig.Float(args[])
if err != nil{
fmt.Println("get type of flaot from config error:",err)
}else {
fmt.Println(floatConf)
}
}else if args[] == "-int64"{
intConf, err := utils.BConfig.Int(args[])
if err != nil{
fmt.Println("get type of int from config error:",err)
}else {
fmt.Println(intConf)
}
}else {
fmt.Println(utils.BConfig.String(args[]))
}
return
}
func SetConfig(args []string)int{
err := utils.BConfig.Set(args[], args[])
if err != nil{
fmt.Println("set config error:", err)
}else{
fmt.Println("set config success")
}
return
}
main.go文件中也需要做适当的调整,来调用上面两个函数。完整的代码如下:
package main import (
"bufio"
"fmt"
"os"
"strings"
_"beegotest/utils"
"beegotest/utils"
) func main() {
r := bufio.NewReader(os.Stdin)
handlers := GetCommandHandlers()
Help(nil) for {
fmt.Print("Command> ")
b, _, _ := r.ReadLine()
line := string(b)
tokens := strings.Split(line, " ") if handler, ok := handlers[tokens[]]; ok{
ret := handler(tokens)
if ret != {
break
}
}else {
fmt.Println("Unknown Command:", tokens[])
}
}
} func GetCommandHandlers() map[string]func(args []string) int {
return map[string]func([]string) int{
"help": Help,
"h": Help,
"quit" : Quit,
"q":Quit,
"getconf":GetConfig,
"setconf":SetConfig,
}
} func Help(args []string) int {
fmt.Println(`Command:
help(h)
quit(q)
getconf -type key
setconf key val
`)
return
} func Quit(args []string) int{
return
} func GetConfig(args []string)int{
if args[] == "-int"{
intConf, err := utils.BConfig.Int(args[])
if err != nil{
fmt.Println("get type of int from config error:",err)
}else {
fmt.Println(intConf)
}
}else if args[] == "-int64"{
int64Conf, err := utils.BConfig.Int64(args[])
if err != nil{
fmt.Println("get type of int64 from config error:",err)
}else {
fmt.Println(int64Conf)
}
}else if args[] == "-bool"{
boolConf, err := utils.BConfig.Bool(args[])
if err != nil{
fmt.Println("get type of bool from config error:",err)
}else {
fmt.Println(boolConf)
}
}else if args[] == "-float"{
floatConf, err := utils.BConfig.Float(args[])
if err != nil{
fmt.Println("get type of flaot from config error:",err)
}else {
fmt.Println(floatConf)
}
}else if args[] == "-int64"{
intConf, err := utils.BConfig.Int(args[])
if err != nil{
fmt.Println("get type of int from config error:",err)
}else {
fmt.Println(intConf)
}
}else {
fmt.Println(utils.BConfig.String(args[]))
}
return
} func SetConfig(args []string)int{
err := utils.BConfig.Set(args[], args[])
if err != nil{
fmt.Println("set config error:", err)
}else{
fmt.Println("set config success")
}
return
}
运行结果如下:

Beego学习笔记——Config的更多相关文章
- Beego学习笔记——开始
beego简介 beego是一个快速开发Go应用的http框架,他可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado.sinatra.fl ...
- Beego学习笔记——Logs
日志处理 这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有file.console.net.smtp,可以通过如下方式进行安装: go get github.co ...
- Beego学习笔记
Beego学习笔记 Go 路由(Controller) 路由就是根据用户的请求找到需要执行的函数或者controller. Get /v1/shop/nike ShopController Get D ...
- Beego 学习笔记15:布局页面
页面布局 1> 一个html页面由:head部分,body部分,内部css,内部js,外联css,外联的js这几部分组成.因此,一个布局文件也就需要针对这些进行拆分. 2> ...
- Beego 学习笔记14:Session控制
Session控制 1> Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2> Beego框架内置了 session 模块,目前 ...
- Beego学习笔记四:编写Model
MVC实践一:编写模型 1> 打开mysql数据库,设计表的结构 <1>登录mysql数据库,如下 <2>这三个标注的参数皆有用,需要谨记. <3>创 ...
- beego学习笔记一:创建第一个beego Web项目 转
前提工作 环境搭建,可以参考如下两篇教程:搭建Go语言环境1搭建Go语言环境2 安装beego beego 的安装是典型的 Go 安装包的形式: go get github.com/astaxie/b ...
- beego学习笔记(4):开发文档阅读(6)
beego的响应流程: 1.监听的端口接收数据,默认是8080端口. 2.用户请求到达8080端口后,开始数据处理流程. 3.初始化CONTEXT对象.判断是否是WEBSOCKET请求,如果是,设置I ...
- beego学习笔记(4):开发文档阅读(5)
controller的逻辑: 我们看下面的代码,就知道怎么传值的: import ( "github.com/astaxie/beego" ) type MainControlle ...
随机推荐
- C#版考题
某软件大赛C#版考题整理——[单选题] 一.单选题(10小题共20.0分) 1. 以下JavaScript代码的正确输出结果是:(). 1 2 3 4 5 6 7 8 9 <script t ...
- iOS基础 - UIScrollView
一.UIScrollView使用引导思路. 1.之前我们所学的显示图片是用UIImageView 2.将UIImageView添加到根视图中,不显示的原因:没有设置位置 3.当图片比屏幕大时,直接放在 ...
- IEnumerable实践应用
1.集合想要支持foreach方式遍历,需要返回一个迭代器(IEnumerator),foreach会自动调用迭代器的状态迁移(MoveNext().Curent.Reset()) #region A ...
- ASP.NET服务器端事件利用MARQUEE实现正在处理效果
前言:ASP.NET同仁们应该都遇到过当触发一个比较耗时的服务器端事件时,页面会处在一个等待的状态(即假死状态),用户体验非常不好,很容易造成用户二次点击,造成重复提交.至于解决方案自然是有的(问go ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)
一.本程序的起源 当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件.我对此事是非常看重的,因此经常使用浏览器,打开gmail去查看刘老师有没有给我回复.因为gmail的新邮件推送的功能仅限于打开浏 ...
- 基于Hadoop开发网络云盘系统客户端界面设计初稿
基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...
- xhEditor struts2实现图片上传
xhEditor的环境搭建请参考http://blog.csdn.net/itmyhome1990/article/details/38422255,这时我们打开图片功能 是没有上传按钮的 如果想要出 ...
- GCD与多线程
GCD与多线程 GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制.它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务. GCD中的 ...
- 创建 Mac OS X 10.9 USB 安装盘
通过 App Store 下载最新的 OS X 10.9 在“应用程序”目录找到下载的 OS X 10.9 安装文件,选中并鼠标右键,菜单中选择“显示包内容” 弹出的 Finder 中进入 Conte ...
- 迷你MVVM框架 avalonjs 0.82发布
迷你MVVM框架 avalonjs 0.82发布 本版本最大的改进是启用全新的parser. parser是用于干什么的?在视图中,我们通过绑定属性实现双向绑定,比如ms-text="fir ...