beego入门

2021-03-02 16:09:45 浏览数 (1)

beego框架入门

安装beego和bee

必须先要安装git

代码语言:javascript复制
go get github.com/astaxie/beego    // 安装beego

go get github.com/beego/bee   // 安装bee工具
常用命令

bee中的常用命令,具体解释如下

  1. 命令必须在src目录下执行
    • new :创建web项目bee new webname
    • api:创建API应用bee api apiname;少了static和views目录,多了test模块,用来做单元测试
  2. 命令必须在/src/appname下执行
    • run:bee run 进入框架网页中
  1. pack

bee pack用来发布应用的时候进行打包,将项目打包成zip

  1. version

动态获取bee、beegogo的版本信息bee version

  1. generate

用来自动化的生成代码

  1. migrate 数据库的迁移命令,用来每次应用升级,降级的SQL管理

项目构成

在建立了mygo之后,整个项目的构成如下:

  • 配置文件
  • 控制器
  • 路由配置
  • 静态文件
  • 单元测试
  • 项目入口文件
入口文件和路由

入口文件的主要功能

  • main.go中引入了一个包
  • 自动解析conf配置文件
  • 执行用户的hookfunc
  • 是否开启 session
  • 是否编译模版

会在启动的时候根据配把 views 目录下的所有模板进行预编译,然后存在map里面

  • 是否开启文档功能
  • 是否启动管理模块

在8088端口做了一个内部监听,通过端口查询到QPS、CPU、内存等信息

  • 监听服务端口

内部调用了ListenAndServe,利用groutine的优势

运行之后监听了两个端口:

  1. 8080:对外服务
  2. 8088:实行对内监控
代码语言:javascript复制
package main

// 入口文件
import (
	_ "mygo/routers"   // 引入了一个包
	"github.com/astaxie/beego"
)

func main() {
	beego.Run()
}
代码语言:javascript复制
package routers

// 路由
import (
	"mygo/controllers"
	"github.com/astaxie/beego"
)

func init() {
    beego.Router("/", &controllers.MainController{})
}
配置文件信息

参数配置的文件默认在conf/app.conf

代码语言:javascript复制
appname = WEB
runmode = dev

// 不同的环境设置不同的端口
[dev]
httpport = 8080
[test]
httpport = 8081
[prod]
httpport = 8082
路由配置

自定义方法及RESTful规则:

代码语言:javascript复制
beego.Router("/", &IndexController{}, "*:Index")
  • *表示任意的method都要执行该函数
  • 不同的格式使用;来分开
  • 多个method对应同一个funcname,method之间通过,来分开
  • 使用httpmethod:funcname格式来展示
controller逻辑

上面我们知道,路由是需要分发给各个控制器进行处理的,源码如下:

代码语言:javascript复制
package controllers

import "github.com/astaxie/beego"

type MainController struct{  // 定义结构体
  beego.Controller  // 内嵌结构体,进行继承
}

// 重写Get方法:接受者
func (this *MainController) Get(){   // data是 map 类型
  this.Data["website"] = "beego.me"
  this.Data["Email"] = "astaxie&gmail.com"
  this.TplName = "index.tpl"   // 模版名称指定:index.tpl
}

// 直接输出字符
func (this *MainController) Post(){
  this.Ctx.WriterString("hello golang")
}
  1. beego.Controller中拥有很多的方法:
  • Init
  • Prepare
  • Post
  • Get
  • Delete
  • Head
自己新建的controller
  • controller下面新建test.go
  • 进行路由配置
  • 页面中访问测试localhost:8080/test

Model 逻辑

model层一般是用来做数据库操作

  • bee new中不存在model
  • bee api中存在model层的应用

如果应用足够简单,不需要model;如果模块开始多了,必须使用model

View 逻辑

Controller中存在this.TplName="index.tpl",设置显示的模板文件,后缀可以是tpl或者html。

0 人点赞