前提工作

环境搭建,可以参考如下两篇教程:
搭建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
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项目 转的更多相关文章

  1. NodeJS笔记(三)-创建第一个NodeJS web项目 Express

    参考:Express的安装 先创建一个文件夹专门存放NodeJS项目,这里以“E:\NodeJSProject”为例 CMD指向该目录 执行以下命名 mkdir expressdemo cd expr ...

  2. .net Core学习笔记1 创建简单的 .net core项目

    1.打开vs2017>Web 1:创建实体类: namespace ProductMvc.Models { //商品类型 public class ProductType { public in ...

  3. idea创建第一个maven web项目

    一.打开idea,File->New->Project.选择Mavne,勾选Create from archtype,选择org.apache.maven.archtypes:maven- ...

  4. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  5. Beego学习笔记——Config

    配置文件解析 这是一个用来解析文件的库,它的设计思路来自于database/sql,目前支持解析的文件格式有ini.json.xml.yaml,可以通过如下方式进行安装: go get github. ...

  6. Beego学习笔记——开始

    beego简介 beego是一个快速开发Go应用的http框架,他可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado.sinatra.fl ...

  7. Beego学习笔记

    Beego学习笔记 Go 路由(Controller) 路由就是根据用户的请求找到需要执行的函数或者controller. Get /v1/shop/nike ShopController Get D ...

  8. Beego 学习笔记14:Session控制

    Session控制 1>     Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2>     Beego框架内置了 session 模块,目前 ...

  9. Beego学习笔记——Logs

    日志处理 这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有file.console.net.smtp,可以通过如下方式进行安装: go get github.co ...

  10. Beego 学习笔记15:布局页面

    页面布局 1>     一个html页面由:head部分,body部分,内部css,内部js,外联css,外联的js这几部分组成.因此,一个布局文件也就需要针对这些进行拆分. 2>     ...

随机推荐

  1. Qt编写安防视频监控系统4-删除视频

    一.前言 一般会有两种处理方式来删除视频,一种是鼠标右键菜单,删除当前视频或者删除所有视频,一种是直接按住当前视频,移到视频通道界面以外就表示删除当前视频,这也是个比较人性化的设置,每个人的喜好不一样 ...

  2. Vue学习笔记(四)一起进阶吧

    参考链接地址:https://segmentfault.com/a/1190000009188689?from=timeline Vuex框架原理与源码分析: http://tech.meituan. ...

  3. Flutter 底部的renderflex溢出

    一开始直接使用Scaffold布局,body:new Column  然后模拟器会提示捕获异常: 然后百度了一下Flutter的溢出问题,发现解决办法是使用SingleChildScrollView包 ...

  4. C# volatile 摘录

    C# 参考 volatile 关键字指示一个字段可以由多个同时执行的线程修改. 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制. 这样可以确保该字段在任何时间呈现的都是最新 ...

  5. 《Java语言程序设计》异常处理

    一.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 1. 源代码为: import javax.swing.*; class A ...

  6. 【FFMPEG】【ARM-Linux开发】 ffmpeg 静态库使用,undefined reference错误

    原文:http://blog.csdn.net/chinazjn/article/details/7954984 ffmpeg移植到dm365上,遇到undefined reference错误: GA ...

  7. 【DSP开发】CMD文件

    DSP的存储器的地址范围,CMD是主要是根据那个来编的. CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间. 所以不同的芯片就有不同大小的rom和ram.放用户程序的地方 ...

  8. TensorFlow.环境_avx2

    1.缘由: 按照之前的步骤,在Win10的笔记本上就是不行: 1.1.jupyter notebook的相关界面,如下图所示: ZC:感觉 应该还是 tensorflow的问题 1.2.然后 各种测试 ...

  9. 模板引擎doT.js用法详解

    作为一名前端攻城师,经常会遇到从后台ajax拉取数据再显示在页面的情境,一开始我们都是从后台拉取再用字符串拼接的方式去更达到数据显示在页面! <!-- 显示区域 --> <div i ...

  10. 解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

    解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 当项目依赖其他jar ...