《WEB应用程序快速开发:使用TURBOGEARS》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)MARK RAMM KEVIN DANGOOR GIGI SAYFAN著;谭颖华 李虎译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111227267
  • 页数:330 页
图书介绍:本书详细地介绍了使用TurboGears的丰富特性来实现更加快速的Web应用程序开发。内容主要包括TurboGears基础知识、构建简单的TurboGears应用程序、探究现实世界的TurboGears应用程序、SQLObject与TurboGears模型、TurboGears视图技术和CherryPy与TurboGears控制器技术等。本书内容丰富,讲解深入透彻,适合软件开发及相关技术人员使用。

第一部分 TurboGears基础知识第1章 TurboGears简介 2

1.1 为什么选择TurboGears 2

1.1.1 让简单的事情易于实现 2

1.1.2 让应用程序易于维护 3

1.2 TurboGears的历史 4

1.3 TurboGears、Ajax和Web 2.0 5

1.4 为什么TurboGears称得上“Pythonic” 5

1.5 可以使用TurboGears做什么 7

1.6 TurboGears的新功能 7

1.7 小结 8

第2章 TurboGears起步 9

2.1 安装TurboGears和SQLite 9

2.2 创建“Hello World”应用程序 11

2.3 使用简单模板 14

2.4 自定义问候语 15

2.5 小结 17

第3章 TurboGears应用程序的架构 18

3.1 什么是MVC 18

3.2 设计模式和面向对象MVC 19

3.3 了解SQLObject和TurboGears模型 21

3.4 了解CherryPy以及TurboGears控制器 24

3.5 了解Kid和TurboGears视图 26

3.6 MVC遇到了Ajax 27

3.7 小结 28

第二部分 构建简单的TurboGears应用程序第4章 创建简单的应用程序 30

4.1 构建简单的书签收藏站点 30

4.2 测试TurboGears应用程序 36

4.3 增加书签的简易表单 38

4.4 小结 40

第5章 增强书签应用程序 42

5.1 更新模型 42

5.2 根据分类列出书签 44

5.3 更新表单 47

5.4 将所有部分融为一体 53

5.5 选择类别 54

5.6 小结 58

第三部分 探究实际TurboGears应用程序第6章 在WhatWhat Status中探究更加复杂的模型 60

6.1 WhatWhat Status是什么 60

6.2 登录并且使用WhatWhat Status 61

6.3 探究WhatWhat Status的模型 63

6.4 编写更好的模型类 69

6.4.1 将所有模型逻辑存放于模型方法中 69

6.4.2 将复杂的关联逻辑封装在新的类中 69

6.5 小结 70

第7章 WhatWhat Status中的控制器、视图以及JavaScript 71

7.1 Dashboard控制器 71

7.1.1 WhatWhat中的安全和身份验证 72

7.1.2 探索Dashboard的index()方法 74

7.2 Dashboard模板 76

7.3 增加新的项目 78

7.4 Dashboard控制器:new_project 81

7.5 小结 83

第8章 WhatWhat Status中的RSS、Cookies和动态视图 84

8.1 Cookies和最近更新 84

8.2 Recent Changes模板 88

8.3 WhatWhat Status中的Widget 91

8.4 使用FeedController简化RSS 93

8.5 小结 96

第9章 Ajax和WhatWhat Status项目 97

9.1 处理Ajax请求 97

9.1.1 Ajax请求/HTML响应 97

9.1.2 Ajax请求/JSON响应 98

9.1.3 Ajax和XML请求 98

9.2 深入研究Project控制器的方法 99

9.3 初识project.kid 102

9.3.1 为项目页面做好铺垫 102

9.3.2 使用Ajax更新项目状态以及项目描述 104

9.4 小结 106

第四部分 SQLObject与TurboGears模型第10章 SQLObject基础 110

10.1 ORM基础 110

10.1.1 谁需要ORM 111

10.1.2 ORM的替代方案 111

10.1.3 ORM的劣势 111

10.2 SQLObject的基本特性 112

10.2.1 基本的连接管理 112

10.2.2 根据SQLObject的继承类自动创建数据库的框架 114

10.2.3 使用Metadata类对行为进行细微的控制 114

10.2.4 根据已有的数据库框架自动生成表描述 115

10.3 简单数据库查询 115

10.3.1 通过ID获取单个对象 116

10.3.2 获取整个数据表 116

10.3.3 根据列值获取数据行 118

10.4 小结 119

第11章 精通SQLObject 120

11.1 映射关联 120

11.1.1 一对多关联 120

11.1.2 多对多关联 122

11.2 直接的SQL查询 124

11.3 智能查询 125

11.3.1 基于sqlbuilder的查询 125

11.3.2 多表联合查询 127

11.3.3 表连接 128

11.3.4 嵌套查询 129

11.4 操作大型结果集 129

11.4.1 以子集的方式操作大型结果集,而非list()方法 129

11.4.2 别实例化大型数据集,直接使用SQL 131

11.4.3 对大量的插入、更新和删除操作使用相同的方法 132

11.4.4 别为了一个对象而多次访问数据库 132

11.5 小结 133

第12章 自定义SQLObject的功能 134

12.1 使用sqlmeta自定义SQLObject类 134

12.1.1 深入探索sqlmeta类 135

12.1.2 列、索引和连接 135

12.1.3 命名技巧 136

12.1.4 延迟更新和缓存 137

12.1.5 过期数据行 138

12.1.6 默认排序 138

12.2 高级的SQLObject自定义 138

12.2.1 增加魔力属性 139

12.2.2 覆写属性访问 140

12.3 SQLObject和继承 141

12.3.1 Python对象、继承和聚合 141

12.3.2 聚合与标准Python继承的比较 141

12.3.3 SQLObject聚合与继承的比较 143

12.4 SQLObject和事务 145

12.4.1 事务和连接 145

12.4.2 sqlhub和事务 148

12.4.3 使用包装函数封装事务 149

12.4.4 使用修饰器封装事务 150

12.5 小结 151

第五部分 TurboGears视图技术第13章 使用Kid实现动态模板 154

13.1 使用Kid创建动态模板 154

13.1.1 使用Python增强的处理指令符 155

13.1.2 生成内容的表达式 155

13.1.3 控制结构 156

13.1.4 Kid的内建函数 158

13.2 超越基础:让模板保持DRY 158

13.2.1 使用py:match进行转化 159

13.2.2 使用py:match创建自定义标签 161

13.2.3 使用py:extends创建父模板 162

13.3 融会贯通 162

13.4 小结 164

第14章 使用MochiKit创建更好的JavaScript代码 165

14.1 概述 165

14.1.1 MochiKit的封装 166

14.1.2 MochiKit的交互式命令解释程序 166

14.2 MochiKit及其交互式命令解释程序简介 166

14.3 Base方法 167

14.3.1 比较问题 167

14.3.2 更复杂的比较问题 168

14.3.3 JavaScript中的对象 169

14.3.4 JavaScript和Python的区别 170

14.3.5 对象的表示 170

14.3.6 JSON序列化 172

14.3.7 使用数组 173

14.3.8 Pythonic版的this 175

14.3.9 对调用函数的优化 176

14.3.10 类字典对象 177

14.3.11 使用查询字符串 177

14.3.12 MochiKit.Base中的函数 178

14.4 JavaScript中的迭代器 179

14.4.1 创建一个迭代器 179

14.4.2 Itertools中的工具 180

14.4.3 MochiKit.Iter所特有的函数 182

14.5 文档对象模型 182

14.5.1 获取元素 183

14.5.2 使用样式 183

14.5.3 创建DOM节点 188

14.5.4 简单事件 190

14.5.5 其他DOM函数 190

14.6 使用MochiKit.Logging来调试程序 191

14.6.1 使用Logging 191

14.6.2 扩展Logging 192

14.6.3 简单的日志示例 193

14.7 使用颜色 194

14.7.1 示例 194

14.7.2 获得颜色的更多方法 198

14.7.3 颜色转换 199

14.7.4 修改颜色 199

14.8 字符串的转换和值的格式化 199

14.8.1 处理日期和时间 200

14.8.2 格式化数字 200

14.8.3 其他格式化函数 201

14.9 小结 202

第15章 使用MochiKit增强Ajax 203

15.1 处理异步事件——包括Ajax请求 203

15.1.1 处理迟来的结果 203

15.1.2 创建一个请求 204

15.1.3 错误处理 205

15.1.4 参数传递 205

15.1.5 Ajax的局限性 206

15.1.6 使用JSON 206

15.1.7 使用计时器 207

15.1.8 取消 207

15.1.9 Ajax、计时器和取消的组合 208

15.1.10 深入了解回调函数 208

15.2 使用MochiKit.Signal处理JavaScript事件 209

15.2.1 初识MochiKit.Signal 209

15.2.2 连接与断开连接 212

15.2.3 使用MochiKit的Cross-Browser Event对象 212

15.2.4 自定义事件 214

15.3 “WowFactor”的视觉效果 215

15.3.1 圆角效果 215

15.3.2 初识Effects 216

15.3.3 效果选项 217

15.3.4 核心效果 218

15.3.5 组合效果 218

15.3.6 自定义效果 219

15.3.7 效果示例 221

15.3.8 Sortables和DragAndDrop 228

15.4 小结 230

第16章 TurboGears Widget:将CSS、XHTML和JavaScript融合为可复用的组件 231

16.1 理解Widget 231

16.1.1 初始化时候的自定义 232

16.1.2 呈现时候的属性赋值 233

16.1.3 在Widget中使用可调用对象 233

16.2 表单Widget 234

16.2.1 自定义表单布局 234

16.2.2 表单字段Widget 235

16.3 复合Widget 236

16.4 Widget与校验 238

16.4.1 FormEncode校验器如何集成至表单Widget中 238

16.4.2 更多的校验器 239

16.4.3 模式校验基础 241

16.5 CSS、JavaScript和Widget 242

16.6 创建自定义Widget 242

16.7 Ajax Widget的剖析 245

16.8 小结 247

第六部分 CherryPy与TurboGears控制器技术第17章 CherryPy和TurboGears的修饰器 250

17.1 CherryPy的URL解析 250

17.2 CherryPy与HTTP请求/响应循环 251

17.3 CherryPy过滤器 253

17.3.1 输入过滤器 253

17.3.2 输出过滤器 254

17.3.3 自行创建过滤器 254

17.4 CherryPy和TurboGears配置 255

17.5 修饰器 256

17.5.1 expose() 256

17.5.2 validate() 257

17.6 错误及异常处理 258

17.6.1 有效性错误 258

17.6.2 复合句柄 259

17.6.3 Exception Handling 259

17.7 TurboGears中的REST样资源 260

17.8 小结 262

第18章 部署TurboGears 263

18.1 选择部署环境 263

18.1.1 服务器使用的作业系统Linux、Mac OS、Windows 263

18.1.2 该在其他网页服务器后运行CherryPy吗 264

18.1.3 TurboGears基础部署设定 264

18.2 使用mod_rewrite或mod_proxy连接到CherryPy 265

18.2.1 在CherryPy前使用代理的优缺点 265

18.2.2 设定Apache与mod_rewrite 266

18.2.3 设定Apache以直接提供静态文件连接 266

18.2.4 设定CherryPy在网页服务器后工作 266

18.2.5 确保CherryPy持续运作 267

18.3 在mod_python上运行CherryPy 268

18.3.1 使用mod_python的优缺点 268

18.3.2 为mod_python设定Apache/CherryPy 269

18.4 在网页服务器后运行CherryPy的其他方法 269

18.5 网站的扩充性 270

18.5.1 扩充Sessions 270

18.5.2 扩充程序 270

18.5.3 低花费的扩充 271

18.6 小结 271

第七部分 TurboGears扩展 274

第19章 TurboGears的工具箱及其工具 274

19.1 工具箱简介 274

19.2 ModelDesigner 275

19.3 CatWalk 277

19.4 WebConsole 279

19.5 Widget浏览器 280

19.6 Admi18n和System Info 281

19.7 tg-admin命令 281

19.8 其他TurboGears工具 282

19.9 小结 282

第20章 国际化 284

20.1 在Python中处理Unicode 284

20.2 在TurboGears中处理Unicode 285

20.2.1 SQLObject和Unicode 285

20.2.2 Kid模板 286

20.2.3 CherryPy的请求/响应循环中的Unicode 287

20.3 翻译应用程序 287

20.3.1 Python源所在的位置 288

20.3.2 Kid模板的地域化 289

20.3.3 自动检测用户的语言偏好 290

20.3.4 具体地域对象 290

20.3.5 Admin i18n界面 291

20.4 小结 292

第21章 测试TurboGears应用程序 293

21.1 Nose 293

21.2 TurboGears中的testutil 297

21.3 Mechanize 301

21.4 Selenium 303

21.5 小结 307

第22章 TurboGears中的Identity和安全问题 308

22.1 使用Identity进行基本的身份验证和用户授权 308

22.2 使用Identity验证用户访问 313

22.3 避免常见的安全隐患 314

22.4 小结 315

附录 SQLAlchemy 316