beego学习笔记(2)】的更多相关文章

日志处理 这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有file.console.net.smtp,可以通过如下方式进行安装: go get github.com/astaxie/beego/logs 如何使用 首先引入包: import ( "github.com/astaxie/beego/logs" ) 然后初始化log变量(10000表示缓存的大小): log := NewLogger(10000) 然后添加输出引擎(log支持同时输出到…
配置文件解析 这是一个用来解析文件的库,它的设计思路来自于database/sql,目前支持解析的文件格式有ini.json.xml.yaml,可以通过如下方式进行安装: go get github.com/astaxie/beego/config 如何使用 首先初始化一个解析器对象 iniconf, err := NewConfig("ini", "testini.conf") if err != nil { t.Fatal(err) } 然后通过对象获取数据 i…
beego简介 beego是一个快速开发Go应用的http框架,他可以用来快速开发API.Web.后端服务等各种应用,是一个RESTFul的框架,主要设计灵感来源于tornado.sinatra.flask这三个框架,但是结合了Go本身的一些特性(interface.struct继承等)而设计的一个框架. beego的架构 beego的整体设计架构如下所示: beego是基于八大独立的模块之上构建的,是一个高度解耦的框架.当初设计beego的时候就是考虑功能模块化,用户即使不适用beego的ht…
Beego学习笔记 Go 路由(Controller) 路由就是根据用户的请求找到需要执行的函数或者controller. Get /v1/shop/nike ShopController Get Delete /v1/shop/nike ShopController Delete Get /v1/notallowed notallowed function beego路由类型 1:函数级别的注册RESTFul的方式注册 2:controller级别的注册自动化映射 3:更自由化的handler…
页面布局 1>     一个html页面由:head部分,body部分,内部css,内部js,外联css,外联的js这几部分组成.因此,一个布局文件也就需要针对这些进行拆分. 2>     新建一个layout.go的控制器.编写一个引用布局文件的实例.具体代码如下: package controllers import ( "github.com/astaxie/beego" ) type LayoutController struct { beego.Controlle…
Session控制 1>     Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2>     Beego框架内置了 session 模块,目前 session 模块支持的后端引擎包括 memory.cookie.file.mysql.redis.couchbase.memcache.postgres,用户也可以根据相应的 interface 实现自己的引擎.若是使用标红的部分,需要再下载对应的session包. 3>     在main.go代…
beego的响应流程: 1.监听的端口接收数据,默认是8080端口. 2.用户请求到达8080端口后,开始数据处理流程. 3.初始化CONTEXT对象.判断是否是WEBSOCKET请求,如果是,设置INPUT.同时,判断请求的方法,是否是标准方法(GET.POST.PUT.DELETE.PATCH.OPTIONS.HEAD),以免被恶意访问. 4.执行beforerouter过滤器.当然,在beego里有开关设置,如果使用该过滤器,则必须打开这个开关.如果在执行过滤器的过程中,responseW…
controller的逻辑: 我们看下面的代码,就知道怎么传值的: import ( "github.com/astaxie/beego" ) type MainController struct { beego.Controller } func (this *MainController) Get() { this.Data["Website"] = "beego.me" this.Data["Email"] = &quo…
beego.Run() 这个运行后, 1)解析配置文件,也就是conf目录下的. 2)判断是否开启session,并作相应的工作 3)执行用户的hookfunc. 4)是否编译模板 5)是否开启文档功能 6)是否启动管理模块 7)监听服务端口…
通过运行 bee new quickstart 来创建新的项目,其结构如下: quickstart |-- conf | `-- app.conf |-- controllers | `-- default.go |-- main.go |-- models |-- routers | `-- router.go |-- static | |-- css | |-- img | `-- js |-- tests | `-- default_test.go `-- views `-- index.…
bee工具的安装和使用 bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建.热编译.开发.测试.和部署. go get github.com/beego/bee 安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步. bee new .... 创建一个新的web项目 bee api ...创建一个新的API服务…
1.beego的设计是高度模块化的.每个模块,都可以单独使用.一共八大模块: cache;session;log;orm;context;httplibs;toolbox 2.beego的执行逻辑 3.beego的项目框架 ├── conf │ └── app.conf ├── controllers │ ├── admin │ └── default.go ├── main.go ├── models │ └── models.go ├── static │ ├── css │ ├── ico…
相对复杂一点的示例: package main import "github.com/astaxie/beego" type MainController struct{ beego.Controller } func(this *MainController) Get(){ this.Ctx.WriteString("Hello World!") } func main() { beego.Router("/",&MainControl…
BEEGO的几个特点: 简单化 RESTful 支持.MVC 模型,可以使用 bee 工具快速地开发应用,包括监控代码修改进行热编译.自动化测试代码以及自动化打包部署. 智能化 支持智能路由.智能监控,可以监控 QPS.内存消耗.CPU 使用,以及 goroutine 的运行状况,让您的线上应用尽在掌握. 模块化 beego 内置了强大的模块,包括 Session.缓存操作.日志记录.配置解析.性能监控.上下文操作.ORM 模块.请求模拟等强大的模块,足以支撑你任何的应用. 高性能 beego…
公司准备开发一个针对塔吊行业的APP. 后台采用微服务,docker容器部署. 准备采用go进行微服务的开发. 采用beego进行restful API的开发. 第一步,访问beego的官方网站: https://beego.me/ 安装beego go get github.com/astaxie/beego 第二步:简单的demo package main import "github.com/astaxie/beego" func main() { beego.Run()}…
Api编写 1>     api常用的数据的格式有json和xml这两种. 2>     下面开始讲解不同的数据格式使用的方式 1->JSON 数据直接输出. 调用 ServeJSON 之后,会设置 content-type 为 application/json,然后同时把数据进行 JSON 序列化输出 2->XML 数据直接输出 调用 ServeXML 之后,会设置 content-type 为 application/xml,同时数据会进行 XML 序列化输出 3->js…
文件的操作 1>     此事例操作的是text文件 2>     文件的操作有读取text内容,将内容写入到文件中,删除文件,创建文件 3>     新建一个控制器,名为rwfile.go.其代码如下: package controllers import ( "fmt" "os" "io/ioutil" "github.com/astaxie/beego" ) type ReadController st…
文件的上传和下载 1->文件的上传 文件的上传,采用的是uploadify.js这个插件. 本事例实现的是上传图片文件,其他的文件上传也一样. 2->文件的下载 文件的下载有两个实现的方式: 1->url路径指向文件的路径,浏览器自行下载.但此方法存在缺陷:图片文件,text,pdf等文件会在浏览器中自动显示,不会执行下载功能 2->使用beego带有的下载方法,执行下载功能 3>新建一个fileopt.go控制器,具体代码如下: package controllers im…
EasyUI使用 1>     下载EasyUI.下载地址:http://www.jeasyui.com/download/index.php 根据自己使用的是jquery还是Angular进行下载.我使用的是Jquery版本的. 2>     将easyui文件夹解压,添加到项目中. 3>     编写实现逻辑 1->新增一个名为easyui.go的控制器,编辑业务逻辑 2->在路由器中添加路由配置 3->新增easyui.html页面,作为展示效果使用 4> …
JS分页 1>     JS分页,业务逻辑 (1)     分页采用的是一个叫jquery.pagination.js的一个jquery插件 (2)     需要jquery的支持,此项目中使用到的是jquery-2.1.1.min.js (3)     分页需要的参数有:记录总数,每页显示个数,页码 (4)     添加搜索的条件,作为查询使用 2>     编写新的model,命名为data.go.其代码如下: package models import ( "fmt"…
MVC-VC 1>     新建一个user.go控制器,其代码如下: package controllers import ( "webapp/models" "strconv" "fmt" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" _"github.com/go-sql-driver/mysql" ) /…
MVC实践一:编写模型 1>     打开mysql数据库,设计表的结构 <1>登录mysql数据库,如下 <2>这三个标注的参数皆有用,需要谨记. <3>创建名为test的数据库,创建user表,字段设计如下图所示: 2>     在vs code中新建一个模型,命名为user.go,对应mysql数据库中的user表.其代码如下: package models import ( "fmt" "github.com/astax…
1>     打开main.go文件,查看代码 点击快捷键F12,进入beego.go文件,查看代码 2>     打开router.go文件,查看路由 3>     打开default.go文件,查看业务逻辑 4>     打开index.tpl文件,查看前台页面 5>     执行逻辑总结 第一步,进入main.go,编译程序:第二步,进入router.go路由器,查找需要执行的路由以及对应的控制器:第三步,找到对应的constroller控制器和执行的方法函数:第四步,…
第一个MVC项目 1>     使用beego命令,创建一个项目 首先切换到创建项目的位置,输入bee new firstweb命令,创建成功之后会出现一个名为firstweb的文件夹 2>     使用VS CODE 打开 VS CODE的下载安装地址: https://code.visualstudio.com/Download 安装VS CODE 之后,点击左侧的1的位置,安装GO语言的解析器和环境,若是没有安装,则在3的位置输入GO,然后点击安装即可. 3>     项目构造解析…
Beego 环境的配置 1>     下载go,并安装.下载地址是: https://golang.org/dl/.最好选择这部分的最新的下载安装 2>     配置环境变量(若是没有配置的话) 点击环境变量按钮 这是我的Go环境的安装的位置,以及项目放置的路径 将如下的语句赋值到Path的最后面 ;C:\Go\bin;%GOPATH%\bin;%GOROOT%bin; 3>     测试安装 Window+R,输入cmd 出现如下的命令,表示你已经安装成功 4>     安装be…
前提工作 环境搭建,可以参考如下两篇教程:搭建Go语言环境1搭建Go语言环境2 安装beego beego 的安装是典型的 Go 安装包的形式: go get github.com/astaxie/beego 常见问题: git https 无法获取,请配置本地的 git,关闭 https 验证: git config --global http.sslVerify false 如因为网络问题无法下载,请参考下面的源码下载升级方式 beego 升级分为 go 方式升级和源码下载升级: Go 升级…
BootStrap布局 1>     下载地址: http://v3.bootcss.com/getting-started/#download 根据自己的需要,下载不同的版本.我这里使用的是1版本的.比较简单好用. 2>     Bootstrap常用的布局样式介绍 1->布局容器(.container和.container-fluid) 2->栅格系统 (.col-xs-[1-12], .col-sm-[1-12], .col-md-[1-12]和.col-lg-[1-12])…
实现分页的效果 1>     分页的实现的业务逻辑 1->每个页面显示N条数据,总的数据记录数M,则分页的个数为M%N==0?M/N:M/N+1; 2->页面渲染分页的html部分 3>切换页数,以及输入参数,后台处理,重新获取新的满足条件的数据 4>分页的方法,js分页,以及后台分页(下面的分页就是实现后台分页) 2>在models分页夹下,新建一个pager.go的模型,作为分页模型的结构使用.其代码如下: package models import ( "…
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处于开发阶段,可能发生任何导致不兼容的改动. 官方文档:https://beego.me/docs/mvc/model/overview.md 已支持数据库驱动: MySQL:github.com/go-sql-driver/mysql PostgreSQL:github.com/lib/pq Sql…
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目上,启动的时候报上面的错误,这个提示很必须唯一很难定位问题,后面发现是项目名称不一致导致的 把新的项目名称全部替换成之前的项目名称就可以了(注意:所有拷贝过来的文件和内容有这个的都要替换掉),例如:"newprojecname/models"  替换成"oldprojecname…