Golang开发之------ Beego框架

 1.安装go(配置环境变量)

2.安装gorm(Goland编辑器举例):

        go env -w GO111MODULE=on
        go env -w GOPROXY=https://goproxy.cn,direct

3.初始化项目(首先需要在工作目录新建bin文件夹,pkg文件夹,src文件夹):

        go mod init

4.依赖关系处理,根据go.mod文件
        go mod tidy

5.安装Beego框架:

        go get -u github.com/astaxie/beego


6.安装Beego工具:

        go get -u github.com/beego/bee

        go get -u github.com/beego/bee/v2

        go install github.com/beego/bee/v2@master

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

7.如果还运行不起来,mod命令(去除不需要的依赖):

        go mod tidy

8.Beego框架命令(重要部分)

        8.1 bee:查看框架还是否安装成功
        8.2 bee new 项目名称:初始化项目
        8.3 bee run:编辑运行项目
        8.4 bee pack 目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了
        8.5 bee bale 命令:这个命令目前仅限内部使用,具体实现方案未完善,主要用来压缩所有的静态文件变成一个变量申明文件,全部编译到二进制文件里面,用户发布的时候携带静态文件,包括 js、css、img 和 views。
最后在启动运行时进行非覆盖式的自解压
        8.6 bee version 命令:这个命令是动态获取 bee、beego 和 Go 的版本,这样一旦用户出现错误,可以通过该命令来查看当前的版本
        8.7 generate 命令:这个命令是用来自动化的生成代码的,包含了从数据库一键生成 model,还包含了 scaffold 的,通过这个命令,让大家开发代码不再慢

               8.7.1 generate scaffold

                8.7.2 generate model

                8.7.3 generate controller

                8.7.4 generate view

                8.7.5 generate migration

                8.7.6 generate docs

                8.7.7 generate routers:是从原来beego中剥离出来的功能。在早期,beego的项目必须在启动 的时候才会触发生成路由文件

                8.7.8 generate test:

                8.7.9 generate appcode:

                8.7.10 generate router:

        8.8 migrate 命令:这个命令是应用的数据库迁移命令,主要是用来每次应用升级,降级的 SQL 管理

                8.8.1:bee migrate

                8.8.2:bee migrate rollback 

                8.8.3:bee migrate reset

                8.8.4:bee migrate refresh 


        8.9 dockerize 命令:这个命令可以通过生成 Dockerfile 文件来实现 docker 化你的应用

9.Goweb 配置(全局配置:相当于Gin框架yaml文件):

        9.1:设置参数:

        mysql_user = "root"

        mysql_password = "root"

        mysql_host = "127.0.0.1:3306"

        mysql_dbname = "xst"

        9.2:获取参数

        beego.AppConfig.String("mysql_user")

        beego.AppConfig.String("mysql_password")

        beego.AppConfig.String("mysql_host")

        beego.AppConfig.String("mysql_dbname")

10.分组配置(全部配置:多环境可随意切换(设置为不同的运行级别:由runmode决定读取默认参数)):

                runmode = "test1"    决定使用那个配置

                [test1]

                mysql_user = "root"

                mysql_password = "root"

                mysql_host = "127.0.0.1:3306"

                mysql_dbname = "testdb1"

                [test2]

                mysql_user = "root"

                mysql_password = "root"

                mysql_host = "127.0.0.1:3306"

                mysql_dbname = "testdb2"

                [test3]

                mysql_user = "root"

                mysql_password = "root"

                mysql_host = "127.0.0.1:3306"

                mysql_dbname = "testdb3"

11.文件包含:关键词:include(引入服务关键词)

12.路由绑定

                路由绑定方法1

        beego.Get("/hello", func(ctx *context.Context) {

                ctx.Output.Body([]byte("hi beego"))

        })

        路由绑定方法2

        func Index(ctx *context.Context) {

                ctx.Output.Body([]byte("hello beego"))

        }

        路由访问

        beego.Post("/index", Index)

13.数据绑定

        beego.Get (router, beego.FilterFunc)
        beego.Post (router, beego.FilterFunc)
        beego.Any (router, beego.FilterFunc)

        “/”的所有HTTP请求方法都由MainController控制器的对应函数处理
        beego.Router("/",&controllers.MainController{))

        // “/user”的所有HTTP请求方法都由UserControl1er控制器的对应函数处理
        // 例如:GET/user请求由Get()函数处理,P0ST/user请求由Post()函数处理
        beego.Router("/user",&controllers.UserController{})

14.渲染视图
 

type UserController struct {beego.Controller
}func(c *UserController) Get(){fmt.Println("数据测试")c.TplName = "user.tpl"
}

15.获取参数,返回int类型

        获取整形
        id, _ := c.GetInt("uid")

        获取字符串类型
        username := c.GetString("username", "none")

        获取浮点型
        balance, _ := c.GetFloat("balance", 0)

16.数据库操作:

        package controllers

        import (
            "fmt"
            beego "github.com/beego/beego/v2/server/web"
            "github.com/beego/beego/v2/client/orm"
            _ "github.com/go-sql-driver/mysql"
        )

        type UserController struct {
            beego.Controller
        }

        //定义结构体
        type Users struct {
            Id uint
            Username string
            Sex string
            Age uint8
        }

        //指定表名
        func (u *Users) TableName() string {
            return "users"
        }

        //初始化
        func init() {
            //注册数据库
            orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8")
            //注册model
            orm.RegisterModel(new(Users))
            orm.Debug = true
        }

        //匿名函数
        func(c *UserController) Get(){
            //创建orm对象
            o := orm.NewOrm()
            //数据填充
            user := new(Users)
            user.Id = 3
            user.Username = "mike"
            user.Sex = "女"
            user.Age = 18

            //数据库操作
            _, err := o.Insert(user)
            fmt.Printf("erros",err)
            c.TplName = "user.tpl"
        }

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性回归 调试方法

调试方法 特征缩放 对于某些不具有比较性的样本特征 x i x_i xi​ (比如对其他的x来说 x i x_i xi​ 相当大或者相当小),梯度下降的过程可能会非常漫长,并且可能来回波动才能最后收敛到全局的最小值。 在这样的情况下&#xff…

【数据中台】开源项目(2)-Dbus系统架构

大体来说,Dbus支持两类数据源: RDBMS数据源 日志类数据源 1 RMDBMS类数据源的实现 以mysql为例子. 分为三个部分: 日志抽取模块(最新版DBus已经废弃该模块,使用canal直接输出到kafka) 增量转换模块 全量拉取模块 1.1 日志抽…

RabbitMQ之延迟消息实战

RabbitMQ之延迟消息实战 使用死信交换机实现延迟消息 使用死信交换机的过期时间以及没有消费者进行消费,时间到了就会到死信队列中,由此可以实现延迟消息使用延迟消息插件 前提:需要mq配置插件 延时信息案例实战 把一个30分钟的延迟消息可以…

【模电】基本共射放大电路的组成及各元件的作用

基本共射放大电路的组成及各元件的作用 下图所示为基本共射放大电路,晶体管是起放大作用的核心元件。输入信号 U ˙ i \.{U}\tiny i U˙i为正弦波电压。 当 u i 0 {u\tiny i}0 ui0时,称放大电路处于静态。在输入回路中,基极电源 V B B V\tin…

目录树自动生成器 golang+fyne

go tree 代码实现请看 gitee 仓库链接 有很多生成目录树的工具,比如windows自带的tree命令,nodejs的treer,tree-cli等等。这些工具都很成熟、很好用,有较完善的功能。 但是,这些工具全部是命令式的,如果…

CSS:浏览器设置placeholder样式 / 微信小程序设置placeholder样式

一、web 设置placeholder 设置浏览器的placeholder样式 ::-webkit-input-placeholder { /* WebKit browsers */color: #999; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */color: #999; } ::-moz-placeholder { /* Mozilla Firefox 19 */color: #999; } :-ms-input-p…

Rust UI开发(5):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)

注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第五篇,前四篇链接: 1、Rust UI开发(一):使用iced构建UI时…

市场调研:2023年SLG游戏行业需求及发展前景预测

SLG游戏(SLG游戏)一般指策略游戏,策略游戏是一种以取得各种形式胜利为主题的游戏。这类游戏提供给玩家一个可以动脑筋思考问题来处理较复杂事情的环境,允许玩家自由控制、管理和使用游戏中的人、或事物,通过这种自由的手段以及玩家们开动脑筋…

RK3568 android11 实现双路I2C触摸 --GT9xx

一,GT911 触摸屏简介 它的接口类型为 I2C ,供电电压和通讯电压均为 3.3V 。这款电容触摸屏内置了上拉电阻,这意味着我们的开发板上与该触摸屏的接口处不需要设置上拉电阻。关于线序,同样是 GT911 ,不同批次的器件都有…

Python自动化测试面试经典题

相信大家经历过许多面试都会有这样的感受:好不容易通过了 2 -3轮技术面试,但是薪资不够理想;要么被面试的测试专家虐的不要不要的。但每一次的面试也能让自己认识到不足之处,这样才有利于后续拿到理想的offer。 牛鹭学院的学子对…

【JavaWeb】HTMLCSSJavaScript

HTML&CSS&JavaScript 文章目录 HTML&CSS&JavaScript一、开发工具及在线帮助文档二、 HTML2.1 HTML&CSS&JavaScript的作用2.2 HTML基础结构2.3 HTML概念词汇解释2.4 HTML的语法规则2.5 常用标签 三、CSS3.1 引入方式3.2 CSS选择器3.3 CSS浮动3.4 CSS定位…

中信建投在金融电于化期刊发布 DataOps 实践

文 ‖ 中信建投证券股份有限公司 马丽霞 高宇航 李可 许哲 李海伟 近年来,数据的分析和应用对各行各工业的业务模式和竞争形态进行重塑,而积极应对挑战和顺应时代变化是各个市场参与者的必选项。作为资本市场数字化转型的领航者,中信建投证券…

【JMeter】菜单栏介绍

【菜单栏】 1. Tools 导入curl接口信息 作用&#xff1a;快速导入接口信息&#xff0c;响应头和缓存信息等 Log level临时修改日志等级 作用&#xff1a; 从勾选的level开始往更高等级level抓取log日志等级优先级&#xff1a; ALL < TRACE < DEBUG <INFO<WA…

赛题详解第二弹|215G数据集,148w奖金!2023无锡国际人工智能算法大赛

各位人工智能卓越的推动者们&#xff0c;我们诚邀您参与【2023年无锡国际人工智能算法大赛】&#xff0c;探索未来AI创新的巅峰之战&#xff01; 报名链接&#xff1a;https://sourl.cn/sYXEH2 【大赛进程】 12月11日12:00&#xff1a;报名及初赛截止 12月12日-12月15日&…

python爬虫实习找工作练习测试(以下内容仅供参考学习)

要求&#xff1a;获取下图指定网站的指定数据 空气质量状况报告-中国环境监测总站 输入&#xff1a;用户输入下载时间范围&#xff0c;格式为2022-10 输出&#xff1a;将更新时间在2022年10月1日到31日之间的文件下载到本地目录&#xff08;可配置&#xff09;&#xff0c;并…

浏览器如何读取本地Excel表格

浏览器可以读取Excel表格数据吗&#xff1f; 答案是否定的&#xff0c;目前主流浏览器都无法打开本地Excel文档。 答案也是肯定的&#xff0c;这就来看看具体实现方法&#xff01;&#xff01;&#xff01; 首先准备一个Excel表格文件 保存在D:\\temp\测试表.xls…

MySQL基本SQL语句(下)

MySQL基本SQL语句&#xff08;下&#xff09; 一、扩展常见的数据类型 1、回顾数据表的创建语法 基本语法&#xff1a; mysql> create table 数据表名称(字段名称1 字段类型 字段约束,字段名称2 字段类型 字段约束,...primary key(主键字段 > 不能为空、必须唯一) ) …

C++类与对象(5)—流运算符重载、const、取地址

目录 一、流输出 1、实现单个输出 2、实现连续输出 二、流输入 总结&#xff1a; 三、const修饰 四、取地址 .取地址及const取地址操作符重载 五、[ ]运算符重载 一、流输出 1、实现单个输出 创建一个日期类。 class Date { public:Date(int year 1, int month 1,…

PLC:200smart(13-16章)

PLC&#xff1a;200smart 第十三章2、带参子程序3、将子程序设置成库文件 第十三章 项目ValueValue主程序MAIN一个项目只能有一个&#xff0c;循环扫描子程序SBR_0项目中最多有128个&#xff0c;只有在调用时 才执行&#xff08;子程序可以嵌套其他子程序&#xff0c;最多八层…

【经验分享】开发问题记录总结(持续更新)

目录 工具开发 界面类继承某自定义界面类时&#xff0c;出现布局混乱或者所有控件集中在左上角&#xff1f; 在继承自定义界面之后&#xff0c;以诸如 on_xxx_clicked() 模式设计的槽函数失效了? 使用pugi接口取出文本数据后&#xff0c;为什么该变量无法进行字符串比较&…