Go语言web开发---Beego基础
一.框架
框架:可复用的设计组件,它规定了应用的体系结构,明确了整个设计,协作各个组件之间的依赖关系,责任分配,和流程控制。通俗解释框架就是一堆代码的集合,为了提高软件的开发效率和质量,一般都会使用框架。
二.Beego简介
1.作者
谢孟军
2.简介
beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。
REST:指的就是一组约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。Web应用程序最重要的原则是客户端和服务器之间的交互,从客户端到服务器的每个请求都必须包含理解请求所必须的信息。如果服务器在请求之间的任何时候重启或宕机,客户端不会得到通知。客户端可以通过缓存数据的形式来提高性能。
三.Beego的架构

Beego的安装
1、建议用https://goproxy.cn/的方法来设置下goproxy:
Go 1.13 及以上(推荐)
打开你的终端并执行
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
macOS 或 Linux
打开你的终端并执行
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
或者
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
2、设置GOPATH环境变量,beego和bee都用安装在GOPATH下
记得提前装好go语言环境,git命令
安装beego:
go get github.com/astaxie/beego
安装bee:
go get github.com/beego/bee
安装bee工具有可能会出依赖问题:
go: github.com/beego/bee imports
github.com/beego/bee/cmd imports
github.com/beego/bee/cmd/commands/dlv imports
github.com/derekparker/delve/service: github.com/derekparker/delve@v1.3.
1: parsing go.mod:
module declares its path as: github.com/go-delve/delve
but was required as: github.com/derekparker/delve
解决方法:
go env -w GO111MODULE=on
执行完在安装一次,时间会比较久,多等等,实测可行。
四.开发工具bee简介
1.bee安装完成之后,在cmd中输入bee,会看到以下内容

2.go version查看beego版本

3.bee pack打包应用程序,这样我们部署的时候直接将打包之后的项目上传,解压就可以部署。

4.bee new 项目名称:新建一个beego项目

5.bee run 项目名称:启动beego项目。

五.beego项目结构

六.HelloBeego分析
1.项目在启动的时候默认读取congf文件夹下的app.conf,我们可以在该配置文件下配置相关信息。
2.MainController组合了beego.Controller,然而beego.Controller实现ControllerInterface接口,其中就包含了Get方法,我们如果在MainController中不实现Get 方法,会去找beego.controller中的Get方法。
3.beego默认的viewspath是views文件夹,可以通过beego.BConfig.WebConfig.ViewsPath = "myview"或者viewpath=”myviews”设置。
七.参数配置
1. ini格式配置文件介绍
①.ini其本质是一个文本格式的配置文件,为键值对类型(key=value)
②.通过#或;来注释,在本行有效。
③.在ini格式的配置文件中存在section,可以理解为一个模块。
2.默认配置的解析(D:/Go1.14/gopath/src/github.com/astaxie/beego/config.go)
- viewspath用于设置页面文件夹,默认为views
- autorender用于设置是否自动渲染,true为自动渲染,false关闭自动渲染。可以手动开启渲染:c.Render().
3.多配置文件

Go语言web开发---Beego基础的更多相关文章
- Go语言web开发---Beego路由
参考链接(查看更多):https://beego.me/docs/mvc/controller/router.md 基础路由 从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由, ...
- Go语言web开发---Beego的session
一.简介 Session是一段保存在服务器上的信息,当客户端第一次访问服务器时创建Session,同时也会创建一个名为beegosessionID,值为创建的Session的id的Cookie. 这个 ...
- Go语言web开发---Beego的cookie
1.简介 (1)Http是无状态的协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否是同一个客户端,这样的设计严重阻碍了web程序的设计. (2)Cookie是解决Http协议无 ...
- Web开发——HTML基础
文档资料参考: 参考:MDN官网 参考:http://www.runoob.com,W3School 参考:https://developer.mozilla.org/zh-CN/docs/Learn ...
- Web开发——HTML基础(图像、音频和视频内容)
参考: 参考:HTML中的图像 参考:视频和音频内容 目录: 1.HTML中的图像 1.1 我们如何在网页上放置图像? (1)替代文字(alt) (2)宽度和高度 (3)图片标题 1.2 用图形和图形 ...
- Web开发——JavaScript基础
参考学习: MDN JavaScript:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript ECMAScript 6入门(阮一峰):htt ...
- Web开发——jQuery基础
参考: 参考W3School:jQuery 教程 参考:jQuery 参考手册 参考(常用):jQuery API 测试 JavaScript 框架库 - jQuery 测试 JavaScript 框 ...
- Web开发——HTML基础(HTML响应式Web设计 Bootstrap)
参考: 参考:http://www.bootcss.com/ 目录: 1.什么是响应式 Web 设计? 2.创建自己的响应设计 3.使用 Bootstrap 1.什么是响应式 Web 设计? RWD ...
- Web开发——HTML基础(高级文本格式 列表/style)
文档资料参考: 参考:https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_fo ...
随机推荐
- 【.NET 与树莓派】数模转换
在开始之前,需要说明一对很耳熟的概念--数字信号 & 模拟信号. 这些概念的理论有些复杂,你如果相当有兴趣,可以找来有关的文献细细研究:若你不关心那是啥只想知道咋用,那就通俗但不庸俗地理解一下 ...
- 浅谈Java的反射机制和作用
浅谈Java的反射机制和作用 作者:Java大师 欢迎转载,转载请注明出处 很多刚学Java反射的同学可能对反射技术一头雾水,为什么要学习反射,学习反射有什么作用,不用反射,通过new也能创建用户对象 ...
- 【Java基础】ConcurrentHashMap为什么不能存null键和null值
代码如下 /** * 测试ConcurrentHashMap null键和null值的问题 * @return */ @RequestMapping(value = "/get_nacos& ...
- tp5 composer phpexcel使用方法
1.compser 安装phpexcel.在windows命令行下输入:进入网站根目录,compser phpoffice/phpexcel 2.页面引入两个类: use PHPExcel_IOFac ...
- SQL优化-大数据量分页优化
百万数据量SQL,在进行分页查询时会出现性能问题,例如我们使用PageHelper时,由于分页查询时,PageHelper会拦截查询的语句会进行两个步骤 1.添加 select count(*)fro ...
- hdu4720 三角形的外接圆
题意: 给你四个点,问你第四个点是否在前三个点围成的三角形的外接圆上. 思路: 水题,就是练练用魔板罢了,当该三角形是锐角三角形的时候,圆心是任意两条边中垂线的交点,半径是圆心 ...
- VPS、云主机 and 服务器集群、云计算 的区别
VPS:(virtual private server)虚拟专用服务器,将一台服务器分割成多个虚拟专享服务器的优质服务.实现VPS的技术分为容器技术和虚拟化技术.在容器或虚拟机中,每个VPS都可分配独 ...
- (邹博ML)数学分析与概率论
机器学习入门 深度学习和机器学习? 深度学习在某种意义上可以认为是机器学习的一个分支,只是这个分支非常全面且重要,以至于可以单独作为一门学科来进行研究. 回忆知识 求解S. 对数函数的上升速度 我们使 ...
- 缓冲流以及JAVA路径相关问题
缓冲流 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO 次数,从而提高读写的效率. 字节缓冲流 按字节处理 字符缓冲流 按字符处理 实例练习:文 ...
- 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛总结
1003 Express Mail Taking 题意:有n个柜子(编号1-n),m封信,k号位置有钥匙,现在需要取信封,并且每取一次信封都要从k号位置进行领取一次钥匙,再去有信封的位置领取信封,问最 ...