Go

使用beego搭建项目首页

最近尝试使用 beego 来初始化一个项目,按照文档来一步步的操作。 由于初次尝试使用golang来构建 这里也记录一下自己在初始化的时候所遇到的问题与解决。 由于也是新手,所以遇到的问题可能比较低级,但是这也作为以后熟练使用框架的一些基础…

最近尝试使用 beego 来初始化一个项目,按照文档来一步步的操作。 由于初次尝试使用golang来构建 这里也记录一下自己在初始化的时候所遇到的问题与解决。 由于也是新手,所以遇到的问题可能比较低级,但是这也作为以后熟练使用框架的一些基础吧

一、安装beego与bee工具

安装工具有两种方法,一种是使用go get 命令,一种是使用go mod 命令,但是两种方法都有一些前置的操作

  1. 设备goproxy, 加快国内的下载速度
  2. 将$GOPATH/bin 添加到环境变量中

设置goproxy

由于国内的网络环境原因,需要设置代理才可以快速的下载golang的第三方包。

目前使用比较广泛的是goproxy.io与goproxy.cn,goproxy.cn 为七牛云所搭建,设置方法相同,只是路径不同

我本机的go 版本为1.16,13以下的还是升级吧,毕竟目前还看,go mod 应该是未来的主流

shell
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

将 $GOPATH/bin 添加到环境变量PATH 中。

第二步不是必须的,因为要使用bee工具快速生成beego网站的基础目录,所以如果想在任意目录下使用bee工具就需要将bin目录添加到环境变量PATH中。

shell
export GOPATH=/Users/yangyanxing/go
export PATH=$PATH:$GOPATH/bin

上面的命令为临时变更,想要永久变更,需要修改以下的文件,将上面的代码添加到文件任意一个

shell
a. /etc/profile 
b. /etc/paths 
c. ~/.bash_profile 
d. ~/.bash_login 
e. ~/.profile 
f. ~/.bashrc 
e. ~/.zshrc

a和b是系统级别的,建议别修改,如果使用bash 则修改~./bashrc, 如果使用zsh,则修改~/.zshrc

1.1 使用 go get 命令安装beego与bee工具

安装beego

shell
go get github.com/beego/beego/v2

安装bee工具, bee工具可以快速初始化一个beego项目,也运行beego项目,并可以热加载

shell
go get -u github.com/beego/bee/v2

问题一, 这些包都安装到哪里了?

通过go env GOPATH 来查看系统的GOPATH目录,安装的第三方包被下载到了$GOPATH/pkg/mod 目录下,并且目录结构也是按照包的路径结构。

1.2 使用go mod download 下载第三方包

也可以使用go mod download 命令下载第三方包,这种一般是将别人的项目clone到本地以后,本地先根据go.mod文件里的包信息下载对应的库版本,有点类似于python中的requirements.txt 文件的作用,在python中会创建一个虚拟环境,但是在go中是没有虚拟环境的概念的,所有的第三方包都放在一起,会根据版本号作为区分。

先在一个空白 的目录使用go mod init modtest 命令初始化mod文件, 这里会生成一个go.mod文件

查看它的内容cat go.mod

shell
module modtest

go 1.16

这里可以添加第三方包的依赖

shell
module beetest

go 1.16

require github.com/beego/beego/v2 v2.0.1
require github.com/smartystreets/goconvey v1.6.4

这时在go.mod目录下,使用go mod download 命令来下载第三方包。

无论使用go get 还是go mod download 命令,都不会显示下载的进度条,看着挺别扭的。

二、使用bee工具生成beego项目结构

我们使用一个新的目录来生成beego项目,使用bee new beetest 会生成一个新的目录beetest, 这里会生成新的go.mod文件

进到beetest目录

shell
bee new beetest
cd beetest
go mod download

先不用管项目里的目录结构,使用bee run 命令即可启动服务,这里在浏览器中打开http://127.0.0.1:8080 即可看到beego的欢迎页面。

image-20210529170757883

问题二,如果不使用go mod download 则不能使用,为什么?

因为在初始化项目以后,只有go.mod文件,没有go.sum 文件, 该文件会记录一些库的信息,如果没有的话会提示

shell
go: github.com/beego/beego/v2@v2.0.1: missing go.sum entry; to add it:
	go mod download github.com/beego/beego/v2
2021/05/29 17:05:34 ERROR    ▶ 0004 Failed to build the application: go: github.com/beego/beego/v2@v2.0.1: missing go.sum entry; to add it:
	go mod download github.com/beego/beego/v2

所以需要使用go mod download 命令来下载包并且将信息写入到go.sum 文件中。

杨彦星 后端工程师 · 序语程言主理人

做了八年后端,最近在 AI 行业折腾。喜欢把复杂的事情拆开讲清楚,讨厌「显而易见」这四个字。这里记录我踩过的坑和攒下的经验,愿你少踩一点。

yangyanxing1005@qq.com

查看主页