chaindesk
GoWeb开发实战(Beego框架实现项目)
登录
注册
写文章

课程目录

  • 第1章 【GoWeb开发实战】Web 介绍

  • 第2章 【GoWeb开发实战】Go搭建Web服务器以及http包详解

  • 第3章 【GoWeb开发实战】Http的客户端实现

  • 第4章 【GoWeb开发实战】Go与表单

  • 第5章 【GoWeb开发实战】Go访问数据库

  • 第6章 【GoWeb开发实战】Go操作MySQL数据库

  • 第7章 【GoWeb开发实战】Go操作Redis

  • 第8章 【GoWeb开发实战】避免SQL注入

  • 第9章 【GoWeb开发实战】Cookie

  • 第10章 【GoWeb开发实战】Session

  • 第11章 【GoWeb开发实战】XML处理

  • 第12章 【GoWeb开发实战】JSON处理

  • 第13章 【GoWeb开发实战】正则表达式

  • 第14章 【GoWeb开发实战】模板处理-template

  • 第15章 【GoWeb开发实战】文件操作

  • 第16章 【GoWeb开发实战】RPC

  • 第17章 【GoWeb开发实战】Beego之Controller

    • 17.1 【GoWeb开发实战】Beego的参数配置和路由控制

    • 17.2 【GoWeb开发实战】Beego之Controller使用

    • 17.3 【GoWeb开发实战】Beego处理http请求数据

    • 17.4 【GoWeb开发实战】Beego之Cookie

    • 17.5 【GoWeb开发实战】Beego之Session

  • 第18章 【GoWeb开发实战】Beego框架简介和安装

  • 第19章 【GoWeb开发实战】Beego之Model

    • 19.1 【GoWeb开发实战】Beego之ORM模型Model介绍

    • 19.2 【GoWeb开发实战】Beego之ORM的CRUD操作

    • 19.3 【GoWeb开发实战】Beego之ORM高级查询

    • 19.4 【GoWeb开发实战】Beego之原生SQL查询

    • 19.5 【GoWeb开发实战】Beego之构造查询

    • 19.6 【GoWeb开发实战】Beego之事务处理

    • 19.7 【GoWeb开发实战】Beego之模型定义

  • 第20章 【GoWeb开发实战】Beego之View

    • 20.1 【GoWeb开发实战】Beego之模板语法

    • 20.2 【GoWeb开发实战】Beego之模板处理

    • 20.3 【GoWeb开发实战】Beego之模板函数

    • 20.4 【GoWeb开发实战】Beego之文件

  • 第21章 【GoWeb开发实战Beego框架实现】博客项目实战-项目介绍

  • 第22章 【GoWeb开发实战】博客项目搭建以及注册用户信息功能实现

  • 第23章 【GoWeb开发实战Beego框架实现】博客项目实战-登录功能实现

  • 第24章 【GoWeb开发实战Beego框架实现】博客项目实战-Session处理

  • 第25章 【GoWeb开发实战Beego框架实现】博客项目实战-写文章功能

  • 第26章 【GoWeb开发实战Beego框架实现】博客项目实战-首页设计

  • 第27章 【GoWeb开发实战Beego框架实现】博客项目实战-显示文章详情

  • 第28章 【GoWeb开发实战Beego框架实现】博客项目实战-修改文章功能

  • 第29章 【GoWeb开发实战Beego框架实现】博客项目实战-删除文章功能

  • 第30章 【GoWeb开发实战Beego框架实现】博客项目实战-标签功能

  • 第31章 【GoWeb开发实战Beego框架实现】博客项目实战-首页功能扩展

  • 第32章 【GoWeb开发实战Beego框架实现】博客项目实战-文件上传和图片展示功能

  • 第33章 【GoWeb开发实战Beego框架实现】博客项目实战-关于我

  • 目录
  • 2
    点赞
  • 收藏
  • 2
    评论
  • 分享
  • 分享到微博

【GoWeb开发实战】Beego框架简介和安装

Beego框架简介和安装

一、beego简介

beego是一个快速开发Go应用的HTTP框架,他可以用来快速开发API、Web及后端服务等各种应用,是一个RESTful的框架,主要设计灵感来源于tornado、sinatra 和flask这三个框架,但是结合了Go本身的一些 特性(interface、 struct 嵌入等)而设计的一个框架。

1.1 beego的架构

Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不是用beego的http逻辑使用里面的任意模块。具体架构设计如下:

http://image.chaindesk.cn/bee1.png

1.2 beego的执行逻辑

beego是一个经典的mvc框架,它的执行逻辑如下:

beego2

与之对应的项目目录结构如下:

├── conf
│   └── app.conf
├── controllers
│   ├── admin
│   └── default.go
├── main.go
├── models
│   └── models.go
├── static
│   ├── css
│   ├── ico
│   ├── img
│   └── js
└── views
    ├── admin
    └── index.tpl

我们可以看出mian.go是入口文件,controllers是逻辑控制模块,models是模型模块,views是视图模块。

二、beego的安装

2.1 安装beego的源文件

打开终端并执行以下命令(需要耐心等待几分钟):

go get github.com/astaxie/beego

用户同样可以在github上下载源代码然后放置到GOPATH下的src/github.com/astaxie/目录下,然后使用go install就可直接安装。

安装完后可以进入gopath的src目录下查看:

anzhuang1

2.2 安装bee工具

beego还有一个工具bee用于协助快速开发beego项目,通过bee可以很容易的进行构建、热编译、开发、测试和部署。 bee工具可以使用go指令直接下载安装:

go get github.com/beego/bee

当我们安装好bee之后,同样也可以进入gopath的src下查看:

anzhuang2

bee命令默认是放在GOPATH/bin里面:

bee1

2.3 配置文件

所以需要把GOPATH/bin 添加到环境变量中,如果已经配置过了,请跳过:

在终端输入以下命令,打开配置文件:

open ~/.bash_profile

在打开的文件内输入以下环境变量进行配置:

export GOPATH=/Users/ruby/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

然后让刚刚的配置生效:

 source ~/.bash_profile

也可以 使用vim

vim ~/.bash_profile

最后执行:

bee version

若出现以下信息便说明安装成功且运行正常:

hanru:~ ruby$ go get github.com/astaxie/beego
hanru:~ ruby$ go get github.com/beego/bee
hanru:~ ruby$ bee version
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0

├── Beego     : 1.11.1
├── GoVersion : go1.9.4
├── GOOS      : darwin
├── GOARCH    : amd64
├── NumCPU    : 4
├── GOPATH    : /Users/ruby/go
├── GOROOT    : /usr/local/go
├── Compiler  : gc
└── Date      : Tuesday, 27 Nov 2018

version1

刻意截个图,感觉这个蛮帅。。。

三、创建beego项目

安装完以上工具我们就可以直接通过 bee new projectName ,来构建一个beego框架的项目,这样的项目一般是web项目。 需要注意的是这个命令须在 $GOPATH/src 下执行。

hanru:src ruby$ bee new beegoDemo
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0
2018/11/27 11:07:48 INFO     ▶ 0001 Creating application...
    create   /Users/ruby/go/src/beegoDemo/
    create   /Users/ruby/go/src/beegoDemo/conf/
    create   /Users/ruby/go/src/beegoDemo/controllers/
    create   /Users/ruby/go/src/beegoDemo/models/
    create   /Users/ruby/go/src/beegoDemo/routers/
    create   /Users/ruby/go/src/beegoDemo/tests/
    create   /Users/ruby/go/src/beegoDemo/static/
    create   /Users/ruby/go/src/beegoDemo/static/js/
    create   /Users/ruby/go/src/beegoDemo/static/css/
    create   /Users/ruby/go/src/beegoDemo/static/img/
    create   /Users/ruby/go/src/beegoDemo/views/
    create   /Users/ruby/go/src/beegoDemo/conf/app.conf
    create   /Users/ruby/go/src/beegoDemo/controllers/default.go
    create   /Users/ruby/go/src/beegoDemo/views/index.tpl
    create   /Users/ruby/go/src/beegoDemo/routers/router.go
    create   /Users/ruby/go/src/beegoDemo/tests/default_test.go
    create   /Users/ruby/go/src/beegoDemo/main.go
2018/11/27 11:07:48 SUCCESS  ▶ 0002 New application successfully created!

进入src目录下查看创建好的项目:

chuangjian

bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在 $GOPATH/src/projectName 下执行。这样当我们在开发过程中,beego可以实时监测我们的代码文件发生变化,这样我们就不用重新编译运行,非常方便我们调试,我们可以将上面的beegoDemo项目通过bee run运行起来。

hanru:src ruby$ cd beegoDemo/
hanru:beegoDemo ruby$ bee run
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0
2018/11/27 11:13:11 INFO     ▶ 0001 Using 'beegoDemo' as 'appname'
2018/11/27 11:13:11 INFO     ▶ 0002 Initializing watcher...
beegoDemo/controllers
beegoDemo/routers
beegoDemo
2018/11/27 11:13:13 SUCCESS  ▶ 0003 Built Successfully!
2018/11/27 11:13:13 INFO     ▶ 0004 Restarting 'beegoDemo'...
2018/11/27 11:13:13 SUCCESS  ▶ 0005 './beegoDemo' is running...
2018/11/27 11:13:13.619 [I] [asm_amd64.s:2337]  http server Running on http://:8080

可以看到这个项目已经运行起来了,而且跑在了8080端口。

打开浏览器,访问localhost:8080就可以看到如下效果了:

web9_yunxing1

也可以看到终端有访问的情况:

web9_yunxing2

四、执行流程

那么上面的代码到底做了些什么呢?

1、首先我们引入了包github.com/astaxie/beego,我们知道Go语言里面引入包会深度优先的去执行引入包的初始化(变量和init函数,更多),beego包中会初始化一个BeeAPP的应用,初始化一些参数。

2、定义Controller,这里我们定义了一个struct为MainController,充分利用了Go语言的组合的概念,匿名包含了beego.Controller,这样我们的MainController就拥有了beego.Controller的所有方法。

3、定义RESTFul方法,通过匿名组合之后,其实目前的MainController已经拥有了Get、Post、Delete、Put等方法,这些方法是分别用来对应用户请求的Method函数,如果用户发起的是POST请求,那么就执行Post函数。所以这里我们定义了MainController的Get方法用来重写继承的Get函数,这样当用户GET请求的时候就会执行该函数。

4、定义main函数,所有的Go应用程序和C语言一样都是Main函数作为入口,所以我们这里定义了我们应用的入口。

5、Router注册路由,路由就是告诉beego,当用户来请求的时候,该如何去调用相应的Controller,这里我们注册了请求/的时候,请求到MainController。这里我们需要知道,Router函数的两个参数函数,第一个是路径,第二个是Controller的指针。

6、Run应用,最后一步就是把在1中初始化的BeeApp开启起来,其实就是内部监听了8080端口:Go默认情况会监听你本机所有的IP上面的8080端口

停止服务的话,请按ctrl+c

五、bee的命令:

5.1 new命令

new命令是新建一-个Web项目,我们在命令行下执行bee new <项目名>就可以创建一一个新的项目。但是注 意该命令必须在$GOPATH/src下执行。

5.2 api命令

上面的new命令是用来新建Web项目,不过很多用户使用beego来开发API应用。所以这个api命令就是用来创建API应用的。

可以创建一个api项目:

bee api myapi

生成的目录结构为:


├── conf
│   └── app.conf
├── controllers
│   ├── object.go
│   └── user.go
├── main.go
├── models
│   ├── object.go
│   └── user.go
├── routers
│   └── router.go
└── tests
    └── default_test.go

5.3 run命令

bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在 $GOPATH/src/projectName 下执行。这样当我们在开发过程中,beego可以实时监测我们的代码文件发生变化,这样我们就不用重新编译运行,非常方便我们调试。

bee run

5.4 其他

bee的其他命令:

 version     Prints the current Bee version
 migrate     Runs database migrations
 api         Creates a Beego API application
 bale        Transforms non-Go files to Go source files
 fix         Fixes your application by making it compatible with newer versions of Beego
 dlv         Start a debugging session using Delve
 dockerize   Generates a Dockerfile for your Beego application
 generate    Source code generator
 hprose      Creates an RPC application based on Hprose and Beego frameworks
 new         Creates a Beego application
 pack        Compresses a Beego application into a single file
 rs          Run customized scripts
 run         Run the application by starting a local development server
 server      serving static content over HTTP on port

源代码

未经授权禁止转载、改编,转载请注明出处!

本文地址:

赏

解锁单篇文章

《【GoWeb开发实战】Beego框架简介和安装》

解锁全书可以更省钱哦, 立即查看
  • 选择积分
    请选择
    • 无匹配数据
        加载中
    • 余额
      0
    • 不足,最高可抵扣总价的30% 立即充值
    原价 0.00 实付 0
    支付方式
    容朕想想 确认支付
    选择积分
    请选择
    • 无匹配数据
        加载中
      积分余额不足, 立即充值
      打赏积分
      容朕想想 确认打赏

      全思维工程师介绍 关注

      chaindesk
      关注 146 粉丝 292
      韩老师

      评论

      发布
      充值金币
      应付金额
      支付方式
      自定义

      * 自定义金额必须大于1000

      ¥ 0 1RMB = 1 愿钻
      容朕想想 确认支付

      请在新打开的页面上完成充值

      充值完成后,根据你的情况点击下面按钮
      充值失败 充值成功