• beego框架_golang web框架使用介绍


    beego框架_golang web框架_使用介绍

    beego简介

    beego是一个快速开发Go应用的http框架,go 语言方面技术大牛。beego可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado、sinatra、flask这三个框架,但是结合了Go本身的一些特性(interface、struct继承等)而设计的一个框架。

    beego特性
    • MVC

    • REST

    • 智能路由

    • 日志调试

    • 配置管理

    • 模板自动渲染

    • layout 设计

    • 中间件插入逻辑

    • 方便的 JSON/XML 服务

    官方源代码地址: https://github.com/beego/bee

    beego快速入门

    bee 工具简介

    https://www.topgoer.com/beego%E6%A1%86%E6%9E%B6/beego%E5%AE%89%E8%A3%85/bee%E5%B7%A5%E5%85%B7%E7%9A%84%E4%BD%BF%E7%94%A8.html

    bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。

    bee 工具的安装
    go get github.com/beego/bee
    
    • 1

    安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。

    new命令创建web项目

    new 命令是新建一个 Web 项目,我们在命令行下执行 bee new <项目名> 就可以创建一个新的项目。但是注意该命令必须在 $GOPATH/src 下执行。最后会在 $GOPATH/src 相应目录下生成如下目录结构的项目:

    webproject
    ├── conf
    │   └── app.conf
    ├── controllers
    │   └── default.go
    ├── main.go
    ├── models
    ├── routers
    │   └── router.go
    ├── static
    │   ├── css
    │   ├── img
    │   └── js
    ├── tests
    │   └── default_test.go
    └── views
        └── index.tpl
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    从上面的目录结构我们可以看出来 M(models 目录)、V(views 目录)和 C(controllers 目录)的结构, main.go 是入口文件。

    api命令创建api应用项目

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

    apiproject
    ├── conf
    │   └── app.conf
    ├── controllers
    │   └── object.go
    │   └── user.go
    ├── docs
    │   └── doc.go
    ├── main.go
    ├── models
    │   └── object.go
    │   └── user.go
    ├── routers
    │   └── router.go
    └── tests
        └── default_test.go
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    从上面的目录我们可以看到和 Web 项目相比,少了 static 和 views 目录,多了一个 test 模块,用来做单元测试的。

    同时,该命令还支持一些自定义参数自动连接数据库创建相关 model 和 controller: bee api [appname] [-tables=“”] [-driver=mysql] [-conn=“root:@tcp(127.0.0.1:3306)/test”] 如果 conn 参数为空则创建一个示例项目,否则将基于链接信息链接数据库创建项目。

    run命令运行项目

    我们在开发 Go 项目的时候最大的问题是经常需要自己手动去编译再运行,bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在 $GOPATH/src/appname 下执行。 这样我们在开发过程中就可以实时的看到项目修改之后的效果:

    bee run
    
    13-11-25 09:53:04 [INFO] Uses 'myproject' as 'appname'
    13-11-25 09:53:04 [INFO] Initializing watcher...
    13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/controllers)
    13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/models)
    13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject)
    13-11-25 09:53:04 [INFO] Start building...
    13-11-25 09:53:16 [SUCC] Build was successful
    13-11-25 09:53:16 [INFO] Restarting myproject ...
    13-11-25 09:53:16 [INFO] ./myproject is running...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    我们打开浏览器就可以看到效果 http://localhost:8080/:

    在这里插入图片描述

    如果我们修改了 Controller 下面的 default.go 文件,我们就可以看到命令行输出:

    13-11-25 10:11:20 [EVEN] "/gopath/src/myproject/controllers/default.go": DELETE|MODIFY
    13-11-25 10:11:20 [INFO] Start building...
    13-11-25 10:11:20 [SKIP] "/gopath/src/myproject/controllers/default.go": CREATE
    13-11-25 10:11:23 [SKIP] "/gopath/src/myproject/controllers/default.go": MODIFY
    13-11-25 10:11:23 [SUCC] Build was successful
    13-11-25 10:11:23 [INFO] Restarting myproject ...
    13-11-25 10:11:23 [INFO] ./myproject is running...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    刷新浏览器我们看到新的修改内容已经输出。

    参考链接:
    https://www.topgoer.com/beego%E6%A1%86%E6%9E%B6/beego%E5%AE%89%E8%A3%85/bee%E5%B7%A5%E5%85%B7%E7%9A%84%E4%BD%BF%E7%94%A8.html

    https://blog.csdn.net/loongshawn/article/details/55252990

  • 相关阅读:
    【Zotero】翻译插件导入百度API
    【期权系列】顶部和底部信号:期权看跌看涨比(PCR)
    第五章 图
    Vega Prime入门教程14.01:调用VAPS XT DLL
    使用 Keras 和 TensorFlow Lite 的设备端大型语言模型
    洛谷千题详解 | P1005 [NOIP2007 提高组] 矩阵取数游戏【C++、 Java、Python语言】
    RTSP/Onvif安防监控平台EasyNVR抓包命令tcpdump使用不了,该如何解决?
    Stream API
    全面掌握const的用法《一》
    黄金眼PAAS化数据服务DIFF测试工具的建设实践 | 京东云技术团队
  • 原文地址:https://blog.csdn.net/yinjl123456/article/details/126491110