beego学习笔记一:创建第一个beego Web项目 转
前提工作
环境搭建,可以参考如下两篇教程:
搭建Go语言环境1
搭建Go语言环境2
安装beego
beego 的安装是典型的 Go 安装包的形式:
go get github.com/astaxie/beego
常见问题:
- git https 无法获取,请配置本地的 git,关闭 https 验证:
git config --global http.sslVerify false
- 如因为网络问题无法下载,请参考下面的
源码下载升级方式
beego 升级分为 go 方式升级和源码下载升级:
- Go 升级,通过该方式用户可以升级 beego 框架,强烈推荐该方式:
go get -u github.com/astaxie/beego
- 源码下载升级,用户访问 https://github.com/astaxie/beego ,下载源码,然后覆盖到 $GOPATH/src/github.com/astaxie/beego 目录,然后通过本地执行安装就可以升级了:
go install github.com/astaxie/beego
安装bee工具
bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。
通过如下的方式安装 bee 工具:
go get github.com/beego/bee
安装完之后,bee可执行文件默认存放在 $GOPATH/bin里面,所以需要把$GOPATH/bin添加到您的环境变量中,才可以进行下一步。
在命令行输入bee,如果出现如下信息则表示安装成功

我们可以在GOPATH/bin目录下找到生成的bee.exe可执行文件,如下:
新建beego web项目
new命令是新建一个 Web 项目,在命令输入bee new <项目名>,比如我们输入命令bee new myapp,运行结果如下:

bee工具会自动在$GOPATH/src目录下生成myapp项目,如下:

启动项目
命令窗口定位到myapp目录下,运行命令bee run即可启动项目
启动成功,红框部分显示项目运行端口为8080,我们通过浏览器访问:localhost:8080,即可进入如下界面
写一个hello world
用idea打开该项目,下面是整体的项目结构

在controllers目录下新建hello.go文件,内容如下:
package controllers
import (
"github.com/astaxie/beego"
)
type HelloController struct {
beego.Controller //这里相当于继承beego.Controller
}
//重写Get方法
func (hello *HelloController) Get() {
hello.Ctx.WriteString("hello go")
}
上面的代码显示首先我们声明了一个控制器 HelloController,这个控制器里面内嵌了beego.Controller,这就是 Go 的嵌入方式,也就是HelloController自动拥有了所有 beego.Controller 的方法。这类似于面向对象里的继承。
而beego.Controller拥有很多方法,其中包括Init、Prepare、Post、Get、Delete、Head等方法。我们可以通过重写的方式来实现这些方法,而我们上面的代码就是重写了Get方法。
然后将新增的HelloController添加路由,修改routers/router.go文件,如下:
package routers
import (
"myapp/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
// 新增路由
beego.Router("/hello", &controllers.HelloController{})
}
好了,接下来是不是想着要重启项目?不用,bee工具默认为我们的beego项目实现了热加载,我们在来看看控制台
改动代码无需重启项目,简直不要太爽!
让后我们打开浏览器输入http://localhost:8080/hello 看结果
转自 https://www.jianshu.com/p/bdf5bc7e1c6c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
beego学习笔记一:创建第一个beego Web项目 转的更多相关文章
- NodeJS笔记(三)-创建第一个NodeJS web项目 Express
参考:Express的安装 先创建一个文件夹专门存放NodeJS项目,这里以“E:\NodeJSProject”为例 CMD指向该目录 执行以下命名 mkdir expressdemo cd expr ...
- .net Core学习笔记1 创建简单的 .net core项目
1.打开vs2017>Web 1:创建实体类: namespace ProductMvc.Models { //商品类型 public class ProductType { public in ...
- idea创建第一个maven web项目
一.打开idea,File->New->Project.选择Mavne,勾选Create from archtype,选择org.apache.maven.archtypes:maven- ...
- Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...
- Beego学习笔记——Config
配置文件解析 这是一个用来解析文件的库,它的设计思路来自于database/sql,目前支持解析的文件格式有ini.json.xml.yaml,可以通过如下方式进行安装: go get github. ...
- Beego学习笔记——开始
beego简介 beego是一个快速开发Go应用的http框架,他可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado.sinatra.fl ...
- Beego学习笔记
Beego学习笔记 Go 路由(Controller) 路由就是根据用户的请求找到需要执行的函数或者controller. Get /v1/shop/nike ShopController Get D ...
- Beego 学习笔记14:Session控制
Session控制 1> Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2> Beego框架内置了 session 模块,目前 ...
- Beego学习笔记——Logs
日志处理 这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有file.console.net.smtp,可以通过如下方式进行安装: go get github.co ...
- Beego 学习笔记15:布局页面
页面布局 1> 一个html页面由:head部分,body部分,内部css,内部js,外联css,外联的js这几部分组成.因此,一个布局文件也就需要针对这些进行拆分. 2> ...
随机推荐
- Qt编写自定义控件36-图片浏览器
一.前言 本控件主要用来作为一个简单的图片浏览器使用,可以上下翻页显示图片,图片还可以开启过度效果比如透明度渐变,应用场景有查看报警图片运行图片等.此控件非本人原创,来源于网络,我只是修正了好多处BU ...
- 游戏数值——LOL篇 以LOL为起点-说游戏数值设计核心思路
附 文 文档在今年三月份我动笔写了一小部分,但当时思路凌乱,行文梗阻,于是丢在一边构思了半年,现在又回过头来慢慢写,希望能写好写完吧,初衷是希望即时萌新也能看懂,但是好像并不能行——本 ...
- iOS Xib布局某些控件显示或隐藏<约束的修改>
对于这个问题使用Masonry是很好解决的. 注意:绿色的是label2,当indexpath.section % 2 == 0时,label2不存在. 关键代码如下: if (indexPath.s ...
- vue加载优化方案
我们的项目随着组件的加入,首次加载的js文件越来越大,用户等待时间越来越长:之前想着使用webpack的splitCoding来解决,看了webpack的官方文档可以配置optimization的 m ...
- 冲刺Noip2017模拟赛5 解题报告——五十岚芒果酱
1. 公约数(gcd) [问题描述] 给定一个正整数,在[,n]的范围内,求出有多少个无序数对(a,b)满足 gcd(a,b)=a xor b. [输入格式] 输入共一行,一个正整数n. [输出格式] ...
- Mysql性能优化之---(一)
mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF ...
- POJ3259 Wormholes 【spfa判负环】
题目链接:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submis ...
- 使用pycharm开发web——django2.1.5(四)视图和模板相关
刘老师说这块很重要..... 应该是很重要,大概看了一下,这里面关于views中函数作用,大概看来可能就是相应请求,传入数据和跳转,基本功能上貌似这些框架都差不多吧(其实我并没用过3个框架以上.... ...
- HTTP用户认证、追加协议以及相关技术简单学习
1. 用户身份认证 BASIC认证(基本认证): DIGEST(摘要认证): SSL客户端认证: FormBase认证(表单认证)常用: session和cookie 2. 基于HTTP的追加协议 A ...
- linux tcp listen函数的参数backlog
1 listen函数(http://man7.org/linux/man-pages/man2/listen.2.html) int listen(int sockfd, int backlog); ...