7

使用beego搭建项目首页

 3 years ago
source link: https://www.yangyanxing.com/article/hello-page-with-beego.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最近尝试使用 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 应该是未来的主流

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

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

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

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

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

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

go get github.com/beego/beego/v2

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

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

module modtest

go 1.16

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

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目录

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 文件, 该文件会记录一些库的信息,如果没有的话会提示

go: github.com/beego/beego/[email protected]: 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/[email protected]: missing go.sum entry; to add it:
	go mod download github.com/beego/beego/v2

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


Recommend

  • 58
    • Github github.com 6 years ago
    • Cache

    Release v1.10.0 · astaxie/beego · GitHub

    beego is an open-source, high-performance web framework for the Go programming language.

  • 25
    • studygolang.com 5 years ago
    • Cache

    beego框架代码分析

    前言 也许beego框架在国内应该是众多PHPer转go的首选,因为beego的MVC、ORM、完善的中文文档让PHPer们得心应手,毫无疑问我也是。这种感觉就像当年入门PHP时使用ThinkPHP一样。 也许随着你的认知的提升,你会讨厌现...

  • 66
    • studygolang.com 5 years ago
    • Cache

    Beego Logs 源码分析 上篇

    最近参加春招,确实挺受打击,平常做项目遇到的问题,学到的知识点没有及时总结,导致在面试的时候无法清晰的描述出来,因此本专栏后续日常更新,总结编程之路的点滴。下面进入正题。 Beego Logs 使用 先大致了解怎么...

  • 39
    • studygolang.com 5 years ago
    • Cache

    beego学习笔记三

    楔子 写一个CMS或者博客,其中一个环节就是附件管理功能,附件又包含了图片、视频等多媒体文件,还包括压缩包啊、文档等文件,而在附件管理功能当中,又以文件的上传为核心。 Golang自带有gzip的工具可以进行压缩,但...

  • 57
    • studygolang.com 5 years ago
    • Cache

    关于go中beego/session的小总结

    1.用数据库作为存储介质的时候 语法是怎样的?参照 https://github.com/go-sql-driver/mysql#dsn-data-source-nam...

  • 10
    • Github github.com 3 years ago
    • Cache

    Beego

    Beego Beego is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services. It is inspired by Tornado, Sinatra and Flask. beego has some Go-specific features such as in...

  • 15

    beego的session使用中的一处竞态条件2014-12-02beego的session使用中的一处竞态条件被session的一个bug坑死了,今天几乎一天时间都耗在定位这个bug了。表现形式是,用户被不正常的踢出,或者登陆进去又被踢出。代码是类似be...

  • 6
    • studygolang.com 3 years ago
    • Cache

    使用Beego 撸了一个社区

    使用Beego 撸了一个社区 LeeChan · 7天之前 · 645 次点击 · 预计阅读时间不到 1 分钟 ·...

  • 3
    • studygolang.com 1 year ago
    • Cache

    基于beego实现mvc单体模板项目

    基于beego实现mvc单体模板项目 yzbzg · 大约13小时之前 · 187 次...

  • 6

    基于beego实现类似百度文库项目 yzbzg · 4天之前 · 656 次点击 ·...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK