Beego框架由浅入深

新的征程Beego

最初由中国台湾省谢某人编写支持MVC编写模式是Golang中最全面的一个WEB框架借鉴了python-flask及其很多优秀框架的设计模式,内部高度结构提供丰富的内置库使用,是Golang最值得学习的WEB框架之一

  • beego官方社区:https://beego.me/docs/install/bee.md

linux初始化Beego

mkdir /beego && cd /beego
go env  #查看当前的GOPATH
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee  #Bee是管理Beego Web应用程序的快速而灵活的工具。
PATH=$PATH:$GOPATH:bin  #设置能够使用bee的环境变量
export GOPATH=/beego    #设置额外的Gopath工作区
bee new 项目名称
bee run #热启动类似django的热更新

目录结构

root@VM-200-89-ubuntu:/beego/src/ChickenBeauty# tree
.
├── ChickenBeauty
├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
│       └── reload.min.js
├── tests
│   └── default_test.go
└── views
    ├── index.tpl
    └── test.html
  • conf文件夹:放的是项目有关的配置文件

  • controllers:存放主要的业务代码main.go:项目的入口文件

  • models:存放的是数据库有关内容

  • routers:存放路由文件,路由作用是根据不同的请求指定不同的控制器

  • static:存放静态资源,包括图片,html页面,css样式,js文件等

  • tests:测试文件

  • views:存放视图有关内容

beego设计模式

MVC

  • mode1模型操作数据的

  • view 视图控制显示

controller控制器联动的和v的

  • 1.浏览器发送请求到控制器

  • 2.控制器找模型要数据

  • 3.控制器找视图要页面

  • 4.把页面返回给浏览器

简单的一个demo实现post方法

-> route.go

func init() {
    beego.Router("/", &controllers.MainController{})
    //第三个参数控制Url处理的函数的,指定了则优先使用多个方式以;分割
    beego.Router("/index",&controllers.IndexController{},"get:ShowGet;post:Post")
}

-----------------------------------------------------------------------------------
-> controller/defaults.go

type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.Data["Website"] = "beego.me"
    c.Data["Email"] = "astaxie@gmail.com"
    c.Data["test"] = "新的一天你好"
    c.TplName = "test.html"
}

type IndexController struct {
    beego.Controller
}

func (c *IndexController) Post() {
    c.Data["test"]="测试通过"
    c.TplName= "test.html"
}

func (this *IndexController) ShowGet() {
    this.Data["date"]="这个是ShowGet请求的方法"
    this.TplName="test.html"
}

-----------------------------------------------------------------------------------
-> view/test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>
    nihao {{.date}}
</h1>
<h2>
    {{.test}}
</h2>
    <form method="post" action="/index">
        <input type="submit">
    </form>
</body>
</html>

ORM框架

Beego框架由浅入深》有3个想法

  1. Hi there! Would you mind if I share your blog with my myspace group? There’s a lot of people that I think would really appreciate your content. Please let me know. Many thanks ebadkbgkgdbk

  2. You completed a number of fine points there. I did a search on the theme and found the majority of folks will agree with your blog. akefaabkagee

发表评论

电子邮件地址不会被公开。 必填项已用*标注