github email
Go Beego

beego tutorial

无他, 但手熟尔。

0x00 介绍

1. beego 简介

beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。

2. beego 的架构

beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类的应用开发,在你的 socket 游戏开发中也是很有用的模块,这也是 beego 为什么受欢迎的一个原因。大家如果玩过乐高的话,应该知道很多高级的东西都是一块一块的积木搭建出来的,而设计 beego 的时候,这些模块就是积木,高级机器人就是 beego。至于这些模块的功能以及如何使用会在后面的文档逐一介绍。

3. beego 的执行逻辑

既然 beego 是基于这些模块构建的,那么它的执行逻辑是怎么样的呢?beego 是一个典型的 MVC 架构。

4. beego 项目结构

一般的 beego 项目的目录如下所示:

├── conf
│   └── app.conf
├── controllers
│   ├── admin
│   └── default.go
├── main.go
├── models
│   └── models.go
├── static
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views
    ├── admin
    └── index.tpl

从上面的目录结构我们可以看出来 M(models 目录)、V(views 目录)和 C(controllers 目录)的结构, main.go 是入口文件。

0x01 安装

在安装完go语言后,直接使用命令进行安装。

beego 的安装是典型的 Go 安装包的形式:

go get github.com/astaxie/beego

常见问题:

  • git 没有安装,请自行安装不同平台的 git,如何安装请自行搜索。
  • git https 无法获取,请配置本地的 git,关闭 https 验证:
git config --global http.sslVerify false

0x02 快速入门

1 新建项目

bee new myweb 

2 运行项目

bee run 

0x03 一个具体项目

我们通过一个人员信息的管理页面来进行编写。

1. 前端准备

Bootstrap/JQuery

2. 后台数据库

用户表 TB_User

序号 字段名称 字段类型 字段长度 字段说明 可空 备注
1 id int(16) 16 用户id N 主键
2 user_name varchar(64) 64 用户名称 N
3 sex int(1) 1 用户性别 N
4 age int(3) 3 用户年龄 Y
5 phone varchar(16) 16 电话 Y
6 email varchar(32) 32 邮件 Y
7 del_flag int(1) 1 删除标记 Y

执行SQL

CREATE TABLE TB_User
(
    id int PRIMARY KEY AUTO_INCREMENT,
    user_name varchar(64),
    sex int DEFAULT 0,
    age int,
    phone varchar(16),
    email varchar(32),
    del_flag int DEFAULT 0
);
  1. 安装mysql驱动和ORM
go get github.com/go-sql-driver/mysql
go get github.com/astaxie/beego/orm
  1. 编辑main.go