当前位置: 首页 > news >正文

Go 之 Windows下 Beego 项目的搭建

一、GO 环境配置

        从 Go 1.11 开始,Go 引入了模块(Modules)的概念,允许你在任何位置创建和管理 Go 项目,而不需要将它们放在 $GOPATH/src 下。Go Modules 使用 go.mod 文件来管理依赖项和版本信息。

  • 查看GOPATH位置
D:\project_go\demo_beego>echo %GOPATH%
D:\project_go
    • 区分下载安装指令
    go get:主要用于下载和管理依赖库,并不会生成可执行文件。
    go install:用于编译并安装可执行文件到 $GOPATH/bin 目录中。
    
    注意编译并安装可执行文件在 %GOPATH%/bin, 下载的第三方依赖库会在 %GOPATH%/pkg

    二、bee 的操作

    • 可以在任意位置创建一个demo_beego文件夹,然后在文件夹内部执行 go mod init demo_beego 生成一个go.mod 文件

    • 在 demo_beego 文件夹下通过 go install 安装 bee 工具
    D:\project_go\demo_beego>go install github.com/beego/bee/v2@latest
    go: downloading github.com/beego/bee/v2 v2.3.0
    go: downloading gopkg.in/yaml.v2 v2.4.0
    go: downloading github.com/go-delve/delve v1.20.2
    ...
    go: downloading github.com/cilium/ebpf v0.7.0
    go: downloading golang.org/x/net v0.23.0
    go: downloading golang.org/x/mod v0.8.0
    go: downloading github.com/rivo/uniseg v0.2.0
    • 安装成功后查看 bee 指令,若查找不到则把 %GOPATH%/bin 设置到系统变量中

            bee api 命令用于创建一个基于 Beego 框架的 API 应用程序。这种应用程序通常专注于提供 RESTful API 服务,适合构建后端服务

            bee new 命令用于创建一个完整的 Beego 应用程序。这种应用程序不仅包括 API 功能,还可能包含视图(HTML 页面)、静态资源等,适合构建全栈 Web 应用

    D:\project_go\demo_beego>bee
    2025/02/19 14:44:17.084 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
    2025/02/19 14:44:17 INFO     ▶ 0001 Getting bee latest version...
    2025/02/19 14:44:17 INFO     ▶ 0002 Your bee are up to date
    Bee is a Fast and Flexible tool for managing your Beego Web Application.
    
    You are using bee for beego v2.x. If you are working on beego v1.x, please downgrade version to bee v1.12.0
    
    USAGE
        bee command [arguments]
    
    AVAILABLE COMMANDS
    
        dev         Commands which used to help to develop beego and bee
        update      Update Bee
        version     Prints the current Bee version
        bale        Transforms non-Go files to Go source files
        fix         Fixes your application by making it compatible with newer versions of Beego
        dockerize   Generates a Dockerfile and docker-compose.yaml for your Beego application
        migrate     Runs database migrations
        new         Creates a Beego application
        pack        Compresses a Beego application into a single file
        rs          Run customized scripts
        server      serving static content over HTTP on port
        run         Run the application by starting a local development server
        pro         Source code generator
        api         Creates a Beego API application
        generate    Source code generator
        hprose      Creates an RPC application based on Hprose and Beego frameworks
        dlv         Start a debugging session using Delve
    
    Use bee help [command] for more information about a command.
    • 通过 bee new 创建项目
    D:\project_go\demo_beego>bee new gotest1
    2025/02/19 14:45:27.270 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
    2025/02/19 14:45:27 INFO     ▶ 0001 Generate new project support go modules.
    2025/02/19 14:45:27 INFO     ▶ 0002 Creating application...
            create   D:\project_go\demo_beego\gotest1\go.mod
            create   D:\project_go\demo_beego\gotest1\
            create   D:\project_go\demo_beego\gotest1\conf\
            create   D:\project_go\demo_beego\gotest1\controllers\
            create   D:\project_go\demo_beego\gotest1\models\
            create   D:\project_go\demo_beego\gotest1\routers\
            create   D:\project_go\demo_beego\gotest1\tests\
            create   D:\project_go\demo_beego\gotest1\static\
            create   D:\project_go\demo_beego\gotest1\static\js\
            create   D:\project_go\demo_beego\gotest1\static\css\
            create   D:\project_go\demo_beego\gotest1\static\img\
            create   D:\project_go\demo_beego\gotest1\views\
            create   D:\project_go\demo_beego\gotest1\conf\app.conf
            create   D:\project_go\demo_beego\gotest1\controllers\default.go
            create   D:\project_go\demo_beego\gotest1\views\index.tpl
            create   D:\project_go\demo_beego\gotest1\routers\router.go
            create   D:\project_go\demo_beego\gotest1\tests\default_test.go
            create   D:\project_go\demo_beego\gotest1\main.go
    2025/02/19 14:45:27 SUCCESS  ▶ 0003 New application successfully created!
    • 看到 new application successfully created 表示工程创建成功,打开工程可以看到整个工程的目录文件夹结构如下
    myproject
    ├── conf
    │   └── app.conf
    ├── controllers
    │   └── default.go
    ├── main.go
    ├── models
    ├── routers
    │   └── router.go
    ├── static
    │   ├── css
    │   ├── img
    │   └── js
    ├── tests
    │   └── default_test.go
    └── views
        └── index.tpl
    • 如果这时候直接执行 bee run  运行项目,可能会碰到依赖项不存在的问题,如下:
    (base) PS D:\project_go\demo_beego\gotest1> bee run
    ______
    | ___ \
    | |_/ /  ___   ___
    | ___ \ / _ \ / _ \
    | |_/ /|  __/|  __/
    \____/  \___| \___| v2.3.0
    2025/02/19 15:33:00 WARN     ▶ 0001 Running application outside of GOPATH
    2025/02/19 15:33:00 INFO     ▶ 0002 Using 'gotest1' as 'appname'
    2025/02/19 15:33:00 INFO     ▶ 0003 Initializing watcher...
    main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web (imported by gotest1); to add:
            go get gotest1
    2025/02/19 15:33:00 ERROR    ▶ 0004 Failed to build the application: main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web (imported by gotest1); to add:
            go get gotest1
    • 这时就要执行命令 go mod tidy ,解决依赖问题

            go mod tidy 用于管理 Go Modules 项目的依赖关系,确保所有需要的依赖都被正确添加,未使用的依赖被移除,并且 go.mod 和 go.sum 文件保持最新。

    • 等依赖下载完成后,再次执行 bee run 或者 go run main.go,成功的话打开网页http://:8080 即可看到如下内容
    (base) PS D:\project_go\demo_beego\gotest1> bee run
    ______
    | ___ \
    | |_/ /  ___   ___
    | ___ \ / _ \ / _ \
    | |_/ /|  __/|  __/
    \____/  \___| \___| v2.3.0
    2025/02/19 15:37:52 WARN     ▶ 0001 Running application outside of GOPATH
    2025/02/19 15:37:52 INFO     ▶ 0002 Using 'gotest1' as 'appname'
    2025/02/19 15:37:52 INFO     ▶ 0003 Initializing watcher...
    google.golang.org/protobuf/internal/flags
    ......
    2025/02/19 15:38:05 SUCCESS  ▶ 0004 Built Successfully!
    2025/02/19 15:38:05 INFO     ▶ 0005 Restarting 'gotest1.exe'...
    2025/02/19 15:38:05 SUCCESS  ▶ 0006 './gotest1.exe' is running...
    2025/02/19 15:38:06.696 [I] [server.go:281]  http server Running on http://:8080

    三、bee run 与 go run 的区别

    特性go run bee run
    适用范围 适用于任何 Go 项目专门用于 Beego 项目
    编译方式 每次运行时临时编译编译并监视文件变化,支持热重载
    自动重启不支持支持
    文件监视  不支持支持(Go 文件、模板文件、配置文件等)
    开发效率 较低(需要手动重启)高(自动重启和热重载)
    命令用途  快速测试和调试单个或少量 Go 文件 开发和调试 Beego 应用程序

    相关文章:

  • 鸿蒙状态管理概述 v2
  • 计算机组成原理——输入/输出系统(十六)
  • 【分布式】Hadoop完全分布式的搭建(零基础)
  • Windows 11运行《拳皇98UM》等老游戏闪退解决方案
  • 《运维工程师如何利用DeepSeek实现智能运维:分级实战指南》
  • qt的下载安装详细介绍
  • 8.【线性代数】——求解Ax=b
  • C++:类之间的关系
  • 基于golang语言开发publicChain项目实战教程
  • Aseprite绘画流程案例(3)——卡通独角兽可爱
  • python入门笔记4
  • glob 用法技巧
  • 撕碎QT面具(4):horizontal Layout修改各个控件的比例大小
  • 【Golang 面试题】每日 3 题(五十九)
  • 以deepseek为例的AI学习及公司知识库的搭建
  • Golang 相关的github 开源项目
  • 便捷批量字符一键查找替换工具
  • 首页 layout 架子(element-plus菜单组件)
  • 解锁机器学习核心算法 | 逻辑回归:不是回归的“回归”
  • 通过API 调用本地部署 deepseek-r1 模型
  • 人民日报任平:从汽车产销、外贸大盘看中国经济前景
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式
  • 耗资10亿潮汕豪宅“英之园”将强拆?区政府:非法占用集体土地
  • 泽连斯基批准美乌矿产协议
  • 训练孩子的科学思维,上海虹口推出“六个一百”旗舰工程
  • 基因编辑技术让蜘蛛吐彩丝