beego

beego框架学习--beego orm映射

℡╲_俬逩灬. 提交于 2019-12-04 20:22:04
什么是ORM 即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。 在mvc里面models层一般是数据库读写逻辑的封装,数据层的一个映射,我们可以通过orm映射来自动生成models的脚手架. beego的orm模块支持三种数据库,其中就包括了mysql,这里以mysql为例子来实现orm映射. (1)数据库库部分   a1)连接数据库   a2)创建数据库imooc   a3)创建表格 user   a4)插入几条测试数据,现在已经具备了基本的数据库功能 (2)beego部分   a1)进入工程目录   a2)bee generate scaffold user -fields="id:int64,name:string,gender:int,age:int" -driver=mysql -conn="root:123@tcp(127.0.0.1:3306)/imooc"     b1)指令比较复杂,分开讲一下,generate是自动生成的意思,scaffold是脚手架的意思     b2)user是表名,命令会生成对应的文件,文件名称就是user     b3)-fields代表生成的实例的数据结构     b4)

基于beego一键创建RESTFul应用

筅森魡賤 提交于 2019-12-04 07:56:38
API应用开发入门 Go是非常适合用来开发API应用的,而且我认为也是Go相对于其他动态语言的最大优势应用。beego在开发API应用方面提供了非常强大和快速的工具,方便用户快速的建立API应用原型,专心业务逻辑就行了。 快速建立原型 bee快速开发工具提供了一个API应用建立的工具,在gopath/src下的任意目录执行如下命令就可以快速的建立一个API应用: bee api beeapi 应用的目录结构 应用的目录结构如下所示: ├── conf │ └── app.conf ├── controllers │ └── default.go ├── models │ └── object.go └── main.go 源码解析 app.conf里面主要针对API的配置如下: autorender = false //API应用不需要模板渲染,所以关闭自动渲染 copyrequestbody = true //RESTFul应用发送信息的时候是raw body,而不是普通的form表单,所以需要额外的读取body信息 main.go文件主要针对RESTFul的路由注册 beego.RESTRouter("/object", &controllers.ObejctController{}) 这个路由可以匹配如下的规则 URL HTTP Verb Functionality

beego的框架的学习记录

不打扰是莪最后的温柔 提交于 2019-12-04 02:02:37
beego框架学习笔记 首先从一个beego框架最简单的例子中分析改框架,官方文档上已经有的不细说。main.go的代码如下: package main import ( _ "myprojetc/routers" "github.com/astaxie/beego" ) func main() { beego.Run() } 可以从两个部分分析代码的运行,import包里面干的事情和beego中Run函数干的事情 import包 "myprojetc/routers" "github.com/astaxie/beego" 从代码看,这个文件引用了这两个包;再依次类推,其实也就没用到几个包,最终都指向了beego这个包。这可以这样理解,beego的init函数和一些全局变量的初始化设置。然后是这个过程中的init函数。 beego的Run函数 来源: https://www.cnblogs.com/meiguhuaxian/p/11827674.html

beego如何做到XSRF防护

China☆狼群 提交于 2019-12-03 23:54:38
跨站请求伪造(Cross-site request forgery) , 简称为 XSRF,是 Web 应用中常见的一个安全问题。前面的链接也详细讲述了 XSRF 攻击的实现方式。 当前防范 XSRF 的一种通用的方法,是对每一个用户都记录一个无法预知的 cookie 数据,然后要求所有提交的请求(POST/PUT/DELETE)中都必须带有这个 cookie 数据。如果此数据不匹配 ,那么这个请求就可能是被伪造的。 Beego 有内建的 XSRF 的防范机制,要使用此机制,你需要在应用配置文件中加上 enablexsrf 设定: enablexsrf = true xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o xsrfexpire = 3600 或者直接在 main 入口处这样设置: beego.EnableXSRF = true beego.XSRFKEY = "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o" beego.XSRFExpire = 3600 //过期时间,默认60秒 如果开启了 XSRF,那么 Beego 的 Web 应用将对所有用户设置一个 _xsrf 的 cookie 值(默认过期 60 秒),如果 POST PUT DELET 请求中没有这个 cookie 值

Beego must have one register DataBase alias named `default`

匿名 (未验证) 提交于 2019-12-03 01:07:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: In the production server with Beego I get must have one register DataBase alias named default I know the db connection credentials work in the server but whenever I do restful request I get this error and the Beego server crashes. Is there a reason why this is happening? Below is the code inside main.go init function: orm.RegisterDriver("postgres", orm.DR_Postgres) orm.RegisterDataBase("default", "postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?port=%i", pgUser, pgPass, pgHost, pgDb, pgPort)) 回答1: Can you provide a sample of your code? Based

beego框架使用心得

匿名 (未验证) 提交于 2019-12-03 00:41:02
一、使用beego的http library 需要注意,默认情况下maxconnectionsperhost参数为-1,即默认不使用连接池。 问题 解决办法 :设置http使用tcp连接池,golang里面是自定义一个transport。主要参数如下: 二、使用beego的orm或者golang-mysql驱动(beego orm实际上就是使用golang-mysql的驱动)需要注意,默认情况下maxidleconns和maxopenconns参数为0,即默认不使用连接池,也不限制连接数。 问题 invalid connection 解决办法 :1.设置数据库连接池,以下是beego orm下设置参考: 文章来源: beego框架使用心得

Beego框架

匿名 (未验证) 提交于 2019-12-03 00:41:02
1、安装Beego 1、Go 第三方包 go-sqlite3 参考: https://my.oschina.net/Obahua/blog/129689 Mac OS X 通过 Homebrewn 安装: brew install pkgconfig brew install sqlite3 参考: https://github.com/Unknwon/go-web-foundation/blob/v1/lectures/lecture1/lecture1.md https://github.com/astaxie/beego go get github.com/astaxie/beego 2、Beego 运行hello world package main import( "github.com/astaxie/beego" ) type HomeController struct { beego.Controller } func (this *HomeController) Get(){ this.Ctx.WriteString("hello world") } func main() { beego.Router("/",&HomeController{}) beego.Run() } $go run test.go 2018/07/18 10:59:09.731 [I]

使用beego框架

匿名 (未验证) 提交于 2019-12-03 00:41:02
安装beego框架以及bee工具 go get -u github.com/astaxie/beego go get github.com/beego/bee    创建一个新项目 bee new webapp   webapp是项目文件夹的名称,可随意指定,会在GOPATH的src目录下创建一个webapp目录,包含一些bee工具生成的文件目录: → ~/go/src $ ls webapp/ conf main.go routers tests controllers models static views    运行项目   进入到上面创建的webapp项目中,使用bee工具:bee run → ~/go/src/webapp $ bee run ______ | ___ | |_/ / ___ ___ | ___ \ / _ \ / _ | |_/ /| __/| __/ \____/ \___| \___| v1.9.1 2018/07/14 14:01:26 INFO ? 0001 Using ‘webapp‘ as ‘appname‘ 2018/07/14 14:01:26 INFO ? 0002 Initializing watcher... 2018/07/14 14:01:34 SUCCESS ? 0003 Built Successfully! 2018/07

Go包管理工具Vendor使用教程

匿名 (未验证) 提交于 2019-12-03 00:26:01
首先,从 go get -u github.com/kardianos/govendor 下载 govendor 工具到本地。 govendor使用时,必须保证你的工程项目放在 GOPATH/src 目录下。 在Go命令行执行 govendor init ,自动生成 vendor 文件夹(存放你项目需要的依赖包)和 vendor.json 文件(有关依赖包的描述文件)。 这时你查看 vendor.json 文件时,可能还没有什么内容。此时你需要将GOPATH文件夹中的包添加到vendor目录下,只需执行命令 govendor add +external 或者 govendor add +e 。 此时看到的 vendor.json 文件就比之前多了许多,例如: { " comment ": "" , " ignore ": "test" , " package ": [ { " checksumSHA1 ": "T6YlZ5PORNIwutJP7Vfe29XKQno=" , " path ": "github.com/astaxie/beego" , " revision ": "d96289a81bf67728cff7a19b067aaecc65a62ec6" , " revisionTime ": "2017-07-18T16:56:48Z" }, { "

[go][beego] table name: `xxx` not exists 问题

匿名 (未验证) 提交于 2019-12-03 00:22:01
因为是新手小白,对于golang和beego还是入门,遇到了标题中的错误。 问题的原因是所建的model中没有包含这个table的名字,详情请看代码: 没有做更改前报错:table name: `twitter_relationship` not exists 未更改前代码: 数据库中有这张表,本来以为是main.go中写的不正确。main中的函数如图: func main() { o := orm.NewOrm() o.Using("twitter") // 默认使用 default,你可以指定为其他数据库 orm.Debug = true cnt, err := o.QueryTable("twitter_relationship").Count() // SELECT COUNT(*) FROM USER fmt.Printf("Count Num: %s, %s", cnt, err) beego.Run() } 结果发现并不是,经过查询发现是model的问题,于是更改了以下代码: func init() { // 需要在init中注册定义的model orm.RegisterModel(new(TwitterRelationship)) } type TwitterRelationship struct { Id string `orm:"column(uid);pk"`