Skip to content

Commit 4a0c802

Browse files
committed
开始调整目录,写第二小结
1 parent 6b84e3e commit 4a0c802

File tree

11 files changed

+273
-133
lines changed

11 files changed

+273
-133
lines changed

14.1.md

Lines changed: 69 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,70 @@
1-
# 14.1 静态文件支持
2-
我们在前面已经讲过如何处理静态文件,这小节我们详细的介绍如何在beego里面设置和使用静态文件。通过再介绍一个twitter开源的html、css框架bootstrap,无需任何的设计人员就能够让你快速的建立一个漂亮的站点。
3-
4-
## beego静态文件实现和设置
5-
6-
## bootstrap集成
7-
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。
8-
9-
- 组件
10-
  Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:
11-
  下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等
12-
- Javascript插件
13-
  Bootstrap自带了13个jQuery插件,这些插件为Bootstrap中的组件赋予了“生命”。其中包括:
14-
  模式对话框、标签页、滚动条、弹出框等。
15-
- 定制自己的框架代码
16-
  可以对Bootstrap中所有的CSS变量进行修改,依据自己的需求裁剪代码。
17-
18-
![](images/14.1.bootstrap.png?raw=true)
19-
20-
接下来我们利用bootstrap集成到beego框架里面来,快速的建立一个漂亮的站点
21-
22-
23-
## links
24-
* [目录](<preface.md>)
25-
* 上一节: [扩展Web框架](<14.md>)
1+
# 14.1 静态文件支持
2+
我们在前面已经讲过如何处理静态文件,这小节我们详细的介绍如何在beego里面设置和使用静态文件。通过再介绍一个twitter开源的html、css框架bootstrap,无需任何的设计人员就能够让你快速的建立一个漂亮的站点。
3+
4+
## beego静态文件实现和设置
5+
Go的net/http包中提供了静态文件的服务,`ServeFile``FileServer`等函数。beego的静态文件处理就是基于这一层处理的,具体的实现如下所示:
6+
7+
//static file server
8+
for prefix, staticDir := range StaticDir {
9+
if strings.HasPrefix(r.URL.Path, prefix) {
10+
file := staticDir + r.URL.Path[len(prefix):]
11+
http.ServeFile(w, r, file)
12+
w.started = true
13+
return
14+
}
15+
}
16+
17+
StaticDir里面保存的是相应的url对应到静态文件所在的目录,因此在处理URL请求的时候只需要判断对应的请求地址是否包含静态处理开头的url,如果是那么就采用http.ServeFile提供服务。
18+
19+
举例如下:
20+
21+
beego.StaticDir["/asset"] = "/static"
22+
23+
那么请求url如`http://www.beego.me/asset/bootstrap.css`的请求就会请求`/static/bootstrap.css`来提供反馈给客户端。
24+
25+
## bootstrap集成
26+
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。
27+
28+
- 组件
29+
  Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:
30+
  下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等
31+
- Javascript插件
32+
  Bootstrap自带了13个jQuery插件,这些插件为Bootstrap中的组件赋予了“生命”。其中包括:
33+
  模式对话框、标签页、滚动条、弹出框等。
34+
- 定制自己的框架代码
35+
  可以对Bootstrap中所有的CSS变量进行修改,依据自己的需求裁剪代码。
36+
37+
![](images/14.1.bootstrap.png?raw=true)
38+
39+
接下来我们利用bootstrap集成到beego框架里面来,快速的建立一个漂亮的站点。
40+
41+
1. 首先把下载的bootstrap目录放到我们的项目目录,取名为static,如下截图所示
42+
43+
![](images/14.1.bootstrap2.png?raw=true)
44+
45+
2. 因为beego默认设置了StaticDir的值,所以如果你的静态文件目录是static的话就无须再增加了:
46+
47+
StaticDir["/static"] = "static"
48+
49+
3. 模板中使用如下的地址就可以了:
50+
51+
//css文件
52+
<link href="/static/css/bootstrap.css" rel="stylesheet">
53+
54+
//js文件
55+
<script src="/static/js/bootstrap-transition.js"></script>
56+
57+
//图片文件
58+
<img src="/static/img/logo.png">
59+
60+
上面可以实现把bootstrap集成到beego中来,如下展示的图就是集成进来之后的展现效果图:
61+
62+
![](images/14.1.bootstrap3.png?raw=true)
63+
64+
这些模板和格式bootstrap官方都有提供,这边就不在重复贴代码,大家可以上bootstrap官方网站学习如何编写这样的模板。
65+
66+
67+
## links
68+
* [目录](<preface.md>)
69+
* 上一节: [扩展Web框架](<14.md>)
2670
* 下一节: [Session支持](<14.2.md>)

14.2.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# 14.2 Session支持
2+
第六章的时候我们介绍过如何在Go语言中使用session,也实现了一个sessionManger,beego基于sessionManager实现了框架方便的处理session功能。
3+
4+
## session集成
5+
beego中主要有如下这些全局变量来控制session处理:
6+
7+
//related to session
8+
SessionOn bool // 是否开启session模块,默认不开启
9+
SessionProvider string // session后端提供处理模块,默认是sessionManager支持的memory
10+
SessionName string // 客户端保存的cookies的名称
11+
SessionGCMaxLifetime int64 // cookies有效期
12+
13+
GlobalSessions *session.Manager //全局session控制器
14+
15+
当然上面这些变量需要初始化值以及如何配合配置文件设置来设置这些值:
16+
17+
if ar, err := AppConfig.Bool("sessionon"); err != nil {
18+
SessionOn = false
19+
} else {
20+
SessionOn = ar
21+
}
22+
if ar := AppConfig.String("sessionprovider"); ar == "" {
23+
SessionProvider = "memory"
24+
} else {
25+
SessionProvider = ar
26+
}
27+
if ar := AppConfig.String("sessionname"); ar == "" {
28+
SessionName = "beegosessionID"
29+
} else {
30+
SessionName = ar
31+
}
32+
if ar, err := AppConfig.Int("sessiongcmaxlifetime"); err != nil && ar != 0 {
33+
int64val, _ := strconv.ParseInt(strconv.Itoa(ar), 10, 64)
34+
SessionGCMaxLifetime = int64val
35+
} else {
36+
SessionGCMaxLifetime = 3600
37+
}
38+
39+
在beego.Run函数中增加如下代码:
40+
41+
if SessionOn {
42+
GlobalSessions, _ = session.NewManager(SessionProvider, SessionName, SessionGCMaxLifetime)
43+
go GlobalSessions.GC()
44+
}
45+
46+
这样如果只要SessionOn设置为true,那么就会默认开启session功能。独立开一个goroutine来处理session。
47+
48+
为了方便我们在我们的Controller中方便的使用session,我们在`beego.Controller`中提供了如下方法:
49+
50+
func (c *Controller) StartSession() (sess session.Session) {
51+
sess = GlobalSessions.SessionStart(c.Ctx.ResponseWriter, c.Ctx.Request)
52+
return
53+
}
54+
55+
## session使用
56+
通过上面的代码我们可以看到,beego框架很方便的就继承了session功能,那么我们在项目中如何使用呢?请看的示例代码:
57+
58+
59+
60+
61+
62+
## links
63+
* [目录](<preface.md>)
64+
* 上一节: [静态文件支持](<14.1.md>)
65+
* 下一节: [表单及验证支持](<14.3.md>)

14.3.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# 14.3 表单及验证支持
2+
3+
## links
4+
* [目录](<preface.md>)
5+
* 上一节: [Session支持](<14.2.md>)
6+
* 下一节: [用户认证](<14.4.md>)

14.4.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# 14.4 用户认证
2+
3+
## links
4+
* [目录](<preface.md>)
5+
* 上一节: [表单及验证支持](<14.3.md>)
6+
* 下一节: [多语言支持](<14.5.md>)

14.5.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# 14.5 多语言支持
2+
3+
## links
4+
* [目录](<preface.md>)
5+
* 上一节: [用户认证](<14.4.md>)
6+
* 下一节: [pprof支持](<14.6.md>)

14.6.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# 14.6 pprof支持
2+
3+
## links
4+
* [目录](<preface.md>)
5+
* 上一节: [多语言支持](<14.5.md>)
6+
* 下一节: [小结](<14.7.md>)

14.7.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# 14.7 小结
2+
3+
## links
4+
* [目录](<preface.md>)
5+
* 上一节: [pprof支持](<14.6.md>)

14.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
# 14 扩展Web框架
2-
第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发Web的工具进行介绍,第一小节介绍如何处理静态文件,如何利用现有的twitter开源的bootstrap进行快速的开发美观的站点,第二小节介绍如何利用前面介绍的session来进行用户登录处理,第三小节介绍如何方便的输出表单、这些表单如何进行数据验证,如何快速的结合model进行数据的增删改操作,第四小节介绍如何进行一些用户认证,包括http basic认证、http digest认证,第五小节介绍如何利用前面介绍的i18n支持多语言的应用开发。
3-
4-
通过本章的扩展,beego框架将具有快速开发Web的特性,最后我们将讲解如何利用这些扩展的特性扩展开发第十三章开发的博客系统,通过开发一个完整、美观的博客系统让读者了解beego开发带给你的快速。
5-
6-
## 目录
7-
* 1 [静态文件支持](14.1.md)
8-
* 2 [Session支持](14.2.md)
9-
* 3 [表单及验证支持](14.3.md)
10-
* 4 [用户认证](14.4.md)
11-
* 5 [多语言支持](14.5.md)
12-
* 6 [小结](14.6.md)
13-
14-
## links
15-
* [目录](<preface.md>)
16-
* 上一章: [第十三章总结](<13.6.md>)
1+
# 14 扩展Web框架
2+
第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发Web的工具进行介绍,第一小节介绍如何处理静态文件,如何利用现有的twitter开源的bootstrap进行快速的开发美观的站点,第二小节介绍如何利用前面介绍的session来进行用户登录处理,第三小节介绍如何方便的输出表单、这些表单如何进行数据验证,如何快速的结合model进行数据的增删改操作,第四小节介绍如何进行一些用户认证,包括http basic认证、http digest认证,第五小节介绍如何利用前面介绍的i18n支持多语言的应用开发。
3+
4+
通过本章的扩展,beego框架将具有快速开发Web的特性,最后我们将讲解如何利用这些扩展的特性扩展开发第十三章开发的博客系统,通过开发一个完整、美观的博客系统让读者了解beego开发带给你的快速。
5+
6+
## 目录
7+
* 1 [静态文件支持](14.1.md)
8+
* 2 [Session支持](14.2.md)
9+
* 3 [表单及验证支持](14.3.md)
10+
* 4 [用户认证](14.4.md)
11+
* 5 [多语言支持](14.5.md)
12+
* 6 [pprof支持](14.6.md)
13+
* 7 [小结](14.7.md)
14+
15+
## links
16+
* [目录](<preface.md>)
17+
* 上一章: [第十三章总结](<13.6.md>)
1718
* 下一节: [静态文件支持](<14.1.md>)

images/14.1.bootstrap2.png

1.44 KB
Loading

images/14.1.bootstrap3.png

22 KB
Loading

0 commit comments

Comments
 (0)