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 应用程序

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972758.html

    如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

    相关文章

    Day6 25/2/19 WED

    【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…

    【分布式理论12】事务协调者高可用:分布式选举算法

    文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中,常常有多个节点(应用)共同处理不同的事务和资源。前文 【分布式理论9】分布式…

    驱动开发系列37 - Linux Graphics 2D 绘制流程(二)- 画布创建和窗口关联

    一:概述 前面介绍Pixmap表示一块画布,是绘制发生的地方,本节看看驱动程序如何为画布分配内存/显存,以及如何与窗口关联的。 二:为画布分配BO 在系统启动时(用户登录系统之后,会重启Xorg),在 Xorg 服务器初始化时,要为屏幕创建根窗口的 Pixmap,并绑定到 GPU framebu…

    DeepSeek服务器繁忙 多种方式继续优雅的使用它

    前言 你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”,尝试过了多次重新生成后,还是如此。之前DeepSeek官网连续发布2条公告称,DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”&#xff0…

    【Mpx】-环境搭建项目创建(一)

    一.概述 官方文档:https://mpxjs.cn/guide/basic/start.html mpxjs/cli文档: https://github.com/mpx-ecology/mpx-cli 二.脚手架安装&创建项目 2.1项目创建 //脚手架安装 npm i -g mpxjs/cli //创建Mpx项目 mpx create mpx-demo(项目名称) //安装依赖 np…

    【快速入门】Unity 常用组件(功能块)

    欢迎关注 、订阅专栏 【unity 新手教程】谢谢你的支持!💜💜 文章目录 Unity 常用组件(功能块):Transform - 变换:坐标、朝向、大小Mesh Filter - 加载网格数据Mesh Renderer- 渲染网格Camera - …

    python爬虫系列课程2:如何下载Xpath Helper

    python爬虫系列课程2:如何下载Xpath Helper 一、访问极简插件官网二、点击搜索按钮三、输入xpath并点击搜索四、点击推荐下载五、将下载下来的文件解压缩六、打开扩展程序界面七、将xpath.crx文件拖入扩展程序界面一、访问极简插件官网 极简插件官网地址:https://chrome.zzz…

    Unity性能优化个人经验总结(不定期更新)

    字符串 在使用常量或静态变量 Update、LateUpdate、FixedUpdate等每帧调用或调用频率很高的函数内使用字符串时,均使用常量或静态变量处理。 原因解释:除了常量或静态变量的字符串将会在每一次调用时,将会new一个新的字符串,导…

    机器学习小项目之加利福尼亚房价数据分析

    1. 安装必要的库 首先,确保安装了以下必要的 Python 库: pip install scikit-learn pandas matplotlib2. 导入所需库 在代码中,我们需要导入一些常用的库来处理数据、训练模型和评估结果: import pandas as pd import numpy a…

    基于MATLAB的均匀面阵MUSIC算法DOA估计仿真

    基于MATLAB的均匀面阵MUSIC算法DOA估计仿真 文章目录 前言一、二维MUSIC算法原理二、二维MUSIC算法MATLAB仿真三、MATLAB源代码总结 前言 \;\;\;\;\; 在波达角估计算法中,MUSIC 算法与ESPRIT算法属于特征结构子空间算法,是波达角估计算法中的基石。在前面…

    【SQL】SQL多表查询

    多表查询案例联系点击此处 🎄概念 一般我们说的多表查询都涉及外键和父子表之间的关系。比如一对多:一般前面指的是父表后面指的是子表。 ⭐分类 一对多(多对一) 多对多 一对一 ⭐一对多 📢案例:部门与员工的关系 📢关系&…

    【架构】分层架构 (Layered Architecture)

    一、分层模型基础理论 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0365cf0bfa754229bdedca6b472bffc7.png 1. 核心定义 分层架构(Layered Architecture)模型是一种常见的软件设计架构,它将软件系统按照功能划分为不同的层次,每个层次都有特定的职责和功能…

    2025年02月19日Github流行趋势

    项目名称:OmniParser 项目地址url:https://github.com/microsoft/OmniParser 项目语言:Jupyter Notebook 历史star数:12878 今日star数:2153 项目维护者:yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kr…

    uni-app发起网络请求的三种方式

    uni.request(OBJECT) 发起网络请求 具体参数可查看官方文档uni-app data:请求的参数; header:设置请求的 header,header 中不能设置 Referer; method:请求方法; timeout:超时时间,单位 ms&a…

    Scrapy:DownloaderAwarePriorityQueue队列设计详解

    DownloaderAwarePriorityQueue 学习笔记 1. 简介 DownloaderAwarePriorityQueue 是 Scrapy 中一个高级的优先级队列实现,它不仅考虑请求的优先级,还会考虑下载器的负载情况。这个队列为每个域名(slot)维护独立的优先级队列&#…

    用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战

    系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房?****二、准备工作****三、实战步骤详解****Step 1:数据爬取与清洗&am…

    django连接mysql数据库

    1.下载mysqlclient第三方库 2.在settings.py里连接数据库(提前建好) DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: 学生信息,USER: root,PASSWORD: 999123457,HOST: localhost,POST: 3306,} } 3.在models.py里创建一个类&#xff0…

    Linux中的Ctrl+C与Ctrl+Z

    CtrlC与CtrlZ的区别 在Linux中,当我们在执行一个命令运行代码时,由于运行时间过长或中途出现报错,此时,我们可能需要终止该操作,这时候,该使用CtrlC还是CtrlZ呢? 1、CtrlC CtrlC:终…

    新手向:SpringBoot后端查询到数据,前端404?(附联调时各传参方式注解总结-带你一文搞定联调参数)

    前言: 在 Spring Boot 项目开发中,后端小伙伴可能经常遇到这样诡异的场景: 后台日志显示查询到了数据,但前端却一脸懵逼地告诉你 404 Not Found?接口明明写好了,Postman 直接访问却提示找不到&#xff1f…

    网络安全重点总结

    第一章 网络安全基础 信息安全的三个目标 1.保密性 2. 完整性 3. 可用性 4. 合法使用网络安全的发展态势: 1. 计算机病毒层出不穷 2. 黑客对全球网络的恶意攻击石头逐年上升 3. 由于技术不完备,导致系统催在缺陷,漏洞 4. 世界各国军方在加紧…