Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
6ce02f1d
Commit
6ce02f1d
authored
Apr 16, 2013
by
astaxie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add SaveToFile & docs
parent
e8653255
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
86 additions
and
0 deletions
+86
-0
controller.go
controller.go
+17
-0
Quickstart.md
docs/zh/Quickstart.md
+69
-0
No files found.
controller.go
View file @
6ce02f1d
...
@@ -6,10 +6,12 @@ import (
...
@@ -6,10 +6,12 @@ import (
"encoding/xml"
"encoding/xml"
"github.com/astaxie/beego/session"
"github.com/astaxie/beego/session"
"html/template"
"html/template"
"io"
"io/ioutil"
"io/ioutil"
"mime/multipart"
"mime/multipart"
"net/http"
"net/http"
"net/url"
"net/url"
"os"
"path"
"path"
"strconv"
"strconv"
"strings"
"strings"
...
@@ -197,6 +199,21 @@ func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader,
...
@@ -197,6 +199,21 @@ func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader,
return
c
.
Ctx
.
Request
.
FormFile
(
key
)
return
c
.
Ctx
.
Request
.
FormFile
(
key
)
}
}
func
(
c
*
Controller
)
SaveToFile
(
fromfile
,
tofile
string
)
error
{
file
,
_
,
err
:=
c
.
Ctx
.
Request
.
FormFile
(
fromfile
)
if
err
!=
nil
{
return
err
}
defer
file
.
Close
()
f
,
err
:=
os
.
OpenFile
(
tofile
,
os
.
O_WRONLY
|
os
.
O_CREATE
|
os
.
O_TRUNC
,
0666
)
if
err
!=
nil
{
return
err
}
defer
f
.
Close
()
io
.
Copy
(
f
,
file
)
return
nil
}
func
(
c
*
Controller
)
StartSession
()
(
sess
session
.
SessionStore
)
{
func
(
c
*
Controller
)
StartSession
()
(
sess
session
.
SessionStore
)
{
sess
=
GlobalSessions
.
SessionStart
(
c
.
Ctx
.
ResponseWriter
,
c
.
Ctx
.
Request
)
sess
=
GlobalSessions
.
SessionStart
(
c
.
Ctx
.
ResponseWriter
,
c
.
Ctx
.
Request
)
return
return
...
...
docs/zh/Quickstart.md
View file @
6ce02f1d
...
@@ -237,10 +237,79 @@ beego采用了Go语言内置的模板引擎,所有模板的语法和Go的一
...
@@ -237,10 +237,79 @@ beego采用了Go语言内置的模板引擎,所有模板的语法和Go的一
也就是你对应的Controller名字+请求方法名.模板后缀,也就是如果你的Controller名是
`AddController`
,请求方法是
`POST`
,默认的文件后缀是
`tpl`
,那么就会默认请求
`/viewpath/AddController/POST.tpl`
文件。
也就是你对应的Controller名字+请求方法名.模板后缀,也就是如果你的Controller名是
`AddController`
,请求方法是
`POST`
,默认的文件后缀是
`tpl`
,那么就会默认请求
`/viewpath/AddController/POST.tpl`
文件。
### lauout设计
### lauout设计
beego支持layout设计,例如你在管理系统中,其实整个的管理界面是固定的,支会变化中间的部分,那么你可以通过如下的设置:
this.Layout = "admin/layout.html"
this.TplNames = "admin/add.tpl"
在layout.html中你必须设置如下的变量:
{{.LayoutContent}}
beego就会首先解析TplNames指定的文件,获取内容赋值给LayoutContent,然后最后渲染layout.html文件。
目前采用首先把目录下所有的文件进行缓存,所以用户还可以通过类似这样的方式实现layout:
{{template "header.html"}}
处理逻辑
{{template "footer.html"}}
### 模板函数
### 模板函数
beego支持用户定义模板函数,但是必须在
`beego.Run()`
调用之前,设置如下:
func hello(in string)(out string){
out = in + "world"
return
}
beego.AddFuncMap("hi",hello)
定义之后你就可以在模板中这样使用了:
{{.Content | hi}}
目前beego内置的模板函数有如下:
*
markdown
实现了把markdown文本转化为html信息,使用方法{{markdown .Content}}
*
dateformat
实现了时间的格式化,返回字符串,使用方法{{dateformat .Time "2006-01-02T15:04:05Z07:00"}}
*
date
实现了类似PHP的date函数,可以很方便的根据字符串返回时间,使用方法{{date .T "Y-m-d H:i:s"}}
*
compare
实现了比较两个对象的比较,如果相同返回true,否者false,使用方法{{compare .A .B}}
*
substr
实现了字符串的截取,支持中文截取的完美截取,使用方法{{substr .Str 0 30}}
*
html2str
实现了把html转化为字符串,剔除一些script、css之类的元素,返回纯文本信息,使用方法{{html2str .Htmlinfo}}
*
str2html
实现了把相应的字符串当作HTML来输出,不转义,使用方法{{str2html .Strhtml}}
*
htmlquote
实现了基本的html字符转义,使用方法{{htmlquote .quote}}
*
htmlunquote
实现了基本的反转移字符,使用方法{{htmlunquote .unquote}}
## request处理
## request处理
我们经常需要获取用户传递的数据,包括Get、POST等方式的请求,beego里面会自动解析这些数据,你可以通过如下方式获取数据
-
GetString
-
GetInt
-
GetBool
### 文件上传
-
GetFile
-
SaveToFile
## 跳转和错误
## 跳转和错误
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment