课程目录
第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框架实现】博客项目实战-关于我
beego是一个快速开发Go应用的HTTP框架,他可以用来快速开发API、Web及后端服务等各种应用,是一个RESTful的框架,主要设计灵感来源于tornado、sinatra 和flask这三个框架,但是结合了Go本身的一些 特性(interface、 struct 嵌入等)而设计的一个框架。
Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不是用beego的http逻辑使用里面的任意模块。具体架构设计如下:
beego是一个经典的mvc框架,它的执行逻辑如下:
与之对应的项目目录结构如下:
├── 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是视图模块。
打开终端并执行以下命令(需要耐心等待几分钟):
go get github.com/astaxie/beego
用户同样可以在github上下载源代码然后放置到GOPATH下的src/github.com/astaxie/目录下,然后使用
go install
就可直接安装。
安装完后可以进入gopath的src目录下查看:
beego还有一个工具bee用于协助快速开发beego项目,通过bee可以很容易的进行构建、热编译、开发、测试和部署。 bee工具可以使用go指令直接下载安装:
go get github.com/beego/bee
当我们安装好bee之后,同样也可以进入gopath的src下查看:
bee命令默认是放在GOPATH/bin里面:
所以需要把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
刻意截个图,感觉这个蛮帅。。。
安装完以上工具我们就可以直接通过 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目录下查看创建好的项目:
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就可以看到如下效果了:
也可以看到终端有访问的情况:
那么上面的代码到底做了些什么呢?
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
new命令是新建一-个Web项目,我们在命令行下执行bee new <项目名>就可以创建一一个新的项目。但是注 意该命令必须在$GOPATH/src下执行。
上面的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
bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在 $GOPATH/src/projectName 下执行。这样当我们在开发过程中,beego可以实时监测我们的代码文件发生变化,这样我们就不用重新编译运行,非常方便我们调试。
bee run
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
全思维工程师介绍 关注
评论