1.GoWeb+beego框架开发blog系统:Beego框架介绍和搭建

大家好,今天开始和大家一起借助goweb+beego开发一个博客系统。

  • beego官方文档:https://beego.me/

一、beego介绍

1、beego是一个使用Go语言来开发WEB引用的GoWeb框架,该框架起始于2012年,由一位台湾的程序大牛编写并进行公开,其目的就是为大家提供一个高效率的web应用开发框架。该框架采用模块封装,使用简单,容易学习。方便技术开发者快速学习并进行实际开发。对程序员来说,beego掌握起来非常简单,只需要关注业务逻辑实现即可,框架自动为项目需求提供不同的模块功能。

2、beego的一些特性:

1)简单化:RESTful支持,经典的MVC模型;可以使用bee工具提高开发效率,如 键控代码修改进行热编译,自动测试代码,自动打包部署等丰富的开发调试功能。

2)智能化:beego框架封装了路由模块,支持智能路由,智能监控,并且可以监控内存消耗,CPU使用以及goroutine的运行情况,方便开发者对线上应用 进行监控分析。

3)模块化:beego根据功能对代码进行解耦封装,形成了Session,Catch,Log,配置解析,性能监控,上下文操作,ORM等独立的模块,方便开发者使用。

4)高性能:beego采用Go原生的HTTP请求,goroutine的并发 效率可以应付大流量的web应用和API应用。

面试的时候可能会问到这些特性,需要特别记一下,当然,在后面的开发过程中也能真实感受到这些特性所带来的便利。

二、beego安装

1、我们使用命令:go get http://github.com/astaxie/beego 来安装 beego框架,之后使用:go get github.com/beego/bee 来安装命令行工具bee;

【注意】
1)可以通过Git下clone好golang.org和google.golang.org里面常用的包到本地src目录下,方便beego框架的安装;

2)git clone很慢,可以将以下内容添加到C:\Windows\System32\drivers\etc\hosts文件中并保存,可以加快下载速度;
github.com 13.229.188.59
http://github.global.ssl.fastly.Net 151.101.229.194

3)对于下载报错的一些包如mysql,可以进入到对应的目录下,单独git clone下来,后面加上--depth=1参数会更快一些;

4)安装完bee工具后,在bin目录下会生成一个bee.exe的可执行文件,命令行输入bee version检查是否安装成功;

2、安装完beego后可以在src下建一个main.go文件,编译执行如下内容:

package main
import “github.com/astaxie/beego”
func main() {
beego.Info(“第一个beego案例”)
beego.Run(“localhost:8080”)
}

发现后台是有日志打印的,之后通过访问本地页面:http://localhost:8080,返回404,这是因为没有给它指定默认的页面,不过后台有日志打印,说明前端和后台的交互是没有问题的。

3、引入bee工具

1)bee工具有什么用
bee是一个开发工具,是协助Beego框架开发项目时进行创建项目,运行项目,热部署等相关的项目管理的工具。beego是源码,负责开发,bee是工具,负责构建和管理项目。比如说热部署,就是在修改代码的时候,可以不用停止服务后重新启动,可以边改代码,边看界面效果,很大程度上提高了开发效率。
2)bee的几个常用命令
bee工具安装成功后,可以在命令行中输入"bee"查看具体的bee 命令:

* **new命令:**```
    bee new ProjectName
    ```
该命令表示新建一个全新的web项目,有一点需要注意:该命令必须在src目录下执行,才能生效,自动生成web项目的目录结构。如果在其他目录下面执行bee new命令,也同样会是在src目录下面生成对应新项目的目录结构,这是bee工具在构建项目的时候默认寻找创建的目录。
​
* **api命令:**```
    bee api ProjectNames
    ```
    该命令表示用来创建开发API应用。很多用户写前端的后台接口也是通过go来写,因此bee专门提供了一个写api接口应用的命令。通过目录结构可以看到,和Web项目相比,API项目少了static和views目录,多了一个test目录,test是用来进行写测试用例代码的。
    
* **run命令:**```
    bee run 
    ```
    命令用来运行项目,并且能够通过监控文件系统,实时进行代码的热部署更新。也就是,我们代码逻辑进行了修改,不用停止应用,在前端页面就能看到改变。
    
* **pack命令:**
    ```
    bee pack
    ```
    pack命令用来发布应用的时候的大包操作,该命令会把项目大包成zip包,然后我们就可以在部署的时候直接把大包后的项目上传到服务器,然后解压进行部署。
​
* **version命令:**
    ```
    bee version
    ```
    version命令来查看当前bee,beego,go的版本。

三、bee工具的使用分析

  • 1、通过bee工具实现项目部署

1)创建项目:bee new BlogSys,之后会在src目录下创建一个名为BlogSys的项目,目录结构如下:

├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
├── tests
│   └── default_test.go
└── views
    └── index.tpl

【注意】使用Git bash窗口创建项目可能会创建到bin目录下,Git版本:(待补充),最好在cmd命令行通过bee工具创建项目

2)运行项目:bee run,需要将路径切换到项目路径下执行该命令,执行结果:

bee run
13-11-25 09:53:04 [INFO] Uses 'BlogSys' as 'appname'
13-11-25 09:53:04 [INFO] Initializing watcher...
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys/controllers)
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys/models)
13-11-25 09:53:04 [TRAC] Directory(/gopath/src/BlogSys)
13-11-25 09:53:04 [INFO] Start building...
13-11-25 09:53:16 [SUCC] Build was successful
13-11-25 09:53:16 [INFO] Restarting BlogSys ...
13-11-25 09:53:16 [INFO] ./BlogSys is running...

3)浏览器http:\\localhost:8080登录本地页面,查看运行结果如下:
1.GoWeb+beego框架开发blog系统:Beego框架介绍和搭建_第1张图片
表示服务器开启成功。

四、安装过程中遇到的问题

  • go get 找不到 google.golang.org/protobuf 解决办法
git clone https://e.coding.net/robinqiwei/googleprotobuf.git protobuf --depth=1

2、安装bee工具,报参数错误 ,一般是go module没启用

set GO111MODULE=on

你可能感兴趣的:(golang,go)