Rapid Web applications with TurboGears
副标题:无
作 者:(美)Mark Ramm,(美)Kevin Dangoor, (美)Gigi Sayfan著;谭颖华,李虎译
分类号:
ISBN:9787111227267
微信扫一扫,移动浏览光盘
简介
TurboGears利用Python的强大功能实现了易于使用的动态web开发框架
。该框架显著提高了开发人员的生产力,让开发人员能够更加轻松地创建
易用性好并且运用TAjax技术的动态Web应用程序。
本书将帮助有经验的web开发人员运用TurboGears来快速地提高生产力
。通过阅读本书,你将会快速地构建第一个TurboGears的Web应用程序,接
着一步一步扩展它,从而掌握实现这些增强功能的底层类库。书中将会深
入探究一个真实的应用程序——WhatWhat Status(WhatWhat Status是一个
开源的状态跟踪应用程序项目)。来演示TurboGears在其中的应用。
目录
目录
前言
致谢
第一部分 TurboGears基础知识
第1章 TurboGears简介
1.1 为什么选择TurboGears
1.1.1 让简单的事情易于实现
1.1.2 让应用程序易于维护
1.2 TurboGears的历史
1.3 TurboGears、Ajax和Web 2.0
1.4 为什么TurboGears称得上“Pythonic”
1.5 可以使用TurboGears做什么
1.6 TurboGears的新功能
1.7 小结
第2章 TurboGears起步
2.1 安装TurboGears和SQLite
2.2 创建“Hello World”应用程序
2.3 使用简单模板
2.4 自定义问候语
2.5 小结
第3章 TurboGears应用程序的架构
3.1 什么是MVC
3.2 设计模式和面向对象MVC
3.3 了解SQLObject和TurboGears模型
3.4 了解CherryPy以及TurboGears控制器
3.5 了解Kid和TurboGears视图
3.6 MVC遇到了Ajax
3.7 小结
第二部分 构建简单的TurboGears应用程序
第4章 创建简单的应用程序
4.1 构建简单的书签收藏站点
4.2 测试TurboGears应用程序
4.3 增加书签的简易表单
4.4 小结
第5章 增强书签应用程序
5.1 更新模型
5.2 根据分类列出书签
5.3 更新表单
5.4 将所有部分融为一体
5.5 选择类别
5.6 小结
第三部分 探究实际TurboGears应用程序
第6章 在WhatWhat Status中探究更加复杂的模型
6.1 WhatWhat Status是什么
6.2 登录并且使用WhatWhat Status
6.3 探究WhatWhat Status的模型
6.4 编写更好的模型类
6.4.1 将所有模型逻辑存放于模型方法中
6.4.2 将复杂的关联逻辑封装在新的类中
6.5 小结
第7章 WhatWhat Status中的控制器、视图以及JavaScript
7.1 Dashboard控制器
7.1.1 WhatWhat中的安全和身份验证
7.1.2 探索Dashboard的index()方法
7.2 Dashboard模板
7.3 增加新的项目
7.4 Dashboard控制器:new_project
7.5 小结
第8章 WhatWhat Status中的RSS、Cookies和动态视图
8.1 Cookies和最近更新
8.2 Recent Changes模板
8.3 WhatWhat Status中的Widget
8.4 使用FeedController简化RSS
8.5 小结
第9章 Ajax和WhatWhat Status项目
9.1 处理Ajax请求
9.1.1 Ajax请求/HTML响应
9.1.2 Ajax请求/JSON响应
9.1.3 Ajax和XML请求
9.2 深入研究Project控制器的方法
9.3 初识project.kid
9.3.1 为项目页面做好铺垫
9.3.2 使用Ajax更新项目状态以及项目描述
9.4 小结
第四部分 SQLObject与TurboGears模型
第10章 SQLObject基础
10.1 ORM基础
10.1.1 谁需要ORM
10.1.2 ORM的替代方案
10.1.3 ORM的劣势
10.2 SQLObject的基本特性
10.2.1 基本的连接管理
10.2.2 根据SQLObject的继承类自动创建数据库的框架
10.2.3 使用Metadata类对行为进行细微的控制
10.2.4 根据已有的数据库框架自动生成表描述
10.3 简单数据库查询
10.3.1 通过ID获取单个对象
10.3.2 获取整个数据表
10.3.3 根据列值获取数据行
10.4 小结
第11章 精通SQLObject
11.1 映射关联
11.1.1 一对多关联
11.1.2 多对多关联
11.2 直接的SQL查询
11.3 智能查询
11.3.1 基于sqlbuilder的查询
11.3.2 多表联合查询
11.3.3 表连接
11.3.4 嵌套查询
11.4 操作大型结果集
11.4.1 以子集的方式操作大型结果集,而非list()方法
11.4.2 别实例化大型数据集,直接使用SQL
11.4.3 对大量的插入、更新和删除操作使用相同的方法
11.4.4 别为了一个对象而多次访问数据库
11.5 小结
第12章 自定义SQLObject的功能
12.1 使用sqlmeta自定义SQLObject类
12.1.1 深入探索sqlmeta类
12.1.2 列、索引和连接
12.1.3 命名技巧
12.1.4 延迟更新和缓存
12.1.5 过期数据行
12.1.6 默认排序
12.2 高级的SQLObject自定义
12.2.1 增加魔力属性
12.2.2 覆写属性访问
12.3 SQLObject和继承
12.3.1 Python对象、继承和聚合
12.3.2 聚合与标准Python继承的比较
12.3.3 SQLObject聚合与继承的比较
12.4 SQLObject和事务
12.4.1 事务和连接
12.4.2 sqlhub和事务
12.4.3 使用包装函数封装事务
12.4.4 使用修饰器封装事务
12.5 小结
第五部分 TurboGears视图技术
第13章 使用Kid实现动态模板
13.1 使用Kid创建动态模板
13.1.1 使用Python增强的处理指令符
13.1.2 生成内容的表达式
13.1.3 控制结构
13.1.4 Kid的内建函数
13.2 超越基础:让模板保持DRY
13.2.1 使用py:match进行转化
13.2.2 使用py:match创建自定义标签
13.2.3 使用py:extends创建父模板
13.3 融会贯通
13.4 小结
第14章 使用MochiKit创建更好的JavaScript代码
14.1 概述
14.1.1 MochiKit的封装
14.1.2 MochiKit的交互式命令解释程序
14.2 MochiKit及其交互式命令解释程序简介
14.3 Base方法
14.3.1 比较问题
14.3.2 更复杂的比较问题
14.3.3 JavaScript中的对象
14.3.4 JavaScript和Python的区别
14.3.5 对象的表示
14.3.6 JSON序列化
14.3.7 使用数组
14.3.8 Pythonic版的this
14.3.9 对调用函数的优化
14.3.10 类字典对象
14.3.11 使用查询字符串
14.3.12 MochiKit.Base中的函数
14.4 JavaScript中的迭代器
14.4.1 创建一个迭代器
14.4.2 Itertools中的工具
14.4.3 MochiKit.Iter所特有的函数
14.5 文档对象模型
14.5.1 获取元素
14.5.2 使用样式
14.5.3 创建DOM节点
14.5.4 简单事件
14.5.5 其他DOM函数
14.6 使用MochiKit.Logging来调试程序
14.6.1 使用Logging
14.6.2 扩展Logging
14.6.3 简单的日志示例
14.7 使用颜色
14.7.1 示例
14.7.2 获得颜色的更多方法
14.7.3 颜色转换
14.7.4 修改颜色
14.8 字符串的转换和值的格式化
14.8.1 处理日期和时间
14.8.2 格式化数字
14.8.3 其他格式化函数
14.9 小结
第15章 使用MochiKit增强Ajax
15.1 处理异步事件——包括Ajax请求
15.1.1 处理迟来的结果
15.1.2 创建一个请求
15.1.3 错误处理
15.1.4 参数传递
15.1.5 Ajax的局限性
15.1.6 使用JSON
15.1.7 使用计时器
15.1.8 取消
15.1.9 Ajax、计时器和取消的组合
15.1.10 深入了解回调函数
15.2 使用MochiKit.Signal处理JavaScript事件
15.2.1 初识MochiKit.Signal
15.2.2 连接与断开连接
15.2.3 使用MochiKit的Cross-Browser Event对象
15.2.4 自定义事件
15.3 “WowFactor”的视觉效果
15.3.1 圆角效果
15.3.2 初识Effects
15.3.3 效果选项
15.3.4 核心效果
15.3.5 组合效果
15.3.6 自定义效果
15.3.7 效果示例
15.3.8 Sortables和DragAndDrop
15.4 小结
第16章 TurboGears Widget:将CSS、XHTML和JavaScript融合为可复用的组件
16.1 理解Widget
16.1.1 初始化时候的自定义
16.1.2 呈现时候的属性赋值
16.1.3 在Widget中使用可调用对象
16.2 表单Widget
16.2.1 自定义表单布局
16.2.2 表单字段Widget
16.3 复合Widget
16.4 Widget与校验
16.4.1 FormEncode校验器如何集成至表单Widget中
16.4.2 更多的校验器
16.4.3 模式校验基础
16.5 CSS、JavaScript和Widget
16.6 创建自定义Widget
16.7 Ajax Widget的剖析
16.8 小结
第六部分 CherryPy与TurboGears控制器技术
第17章 CherryPy和TurboGears的修饰器
17.1 CherryPy的URL解析
17.2 CherryPy与HTTP请求/响应循环
17.3 CherryPy过滤器
17.3.1 输入过滤器
17.3.2 输出过滤器
17.3.3 自行创建过滤器
17.4 CherryPy和TurboGears配置
17.5 修饰器
17.5.1 expose()
17.5.2 validate()
17.6 错误及异常处理
17.6.1 有效性错误
17.6.2 复合句柄
17.6.3 Exception Handling
17.7 TurboGears中的REST样资源
17.8 小结
第18章 部署 TurboGears
18.1 选择部署环境
18.1.1 服务器使用的作业系统Linux、Mac OS、Windows
18.1.2 该在其他网页服务器后运行CherryPy吗
18.1.3 TurboGears基础部署设定
18.2 使用mod_rewrite或mod_proxy连接到CherryPy
18.2.1 在CherryPy前使用代理的优缺点
18.2.2 设定Apache与mod_rewrite
18.2.3 设定Apache以直接提供静态文件连接
18.2.4 设定CherryPy在网页服务器后工作
18.2.5 确保CherryPy持续运作
18.3 在mod_python上运行CherryPy
18.3.1 使用mod_python的优缺点
18.3.2 为mod_python设定Apache/CherryPy
18.4 在网页服务器后运行CherryPy的其他方法
18.5 网站的扩充性
18.5.1 扩充Sessions
18.5.2 扩充程序
18.5.3 低花费的扩充
18.6 小结
第七部分 TurboGears扩展
第19章 TurboGears的工具箱及其工具
19.1 工具箱简介
19.2 ModelDesigner
19.3 CatWalk
19.4 WebConsole
19.5 Widget浏览器
19.6 Admil8n和System Info
19.7 tg-admin命令
19.8 其他TurboGears工具
19.9 小结
第20章 国际化
20.1 在Python中处理Unicode
20.2 在TurboGears中处理Unicode
20.2.1 SQLObject和Unicode
20.2.2 Kid模板
20.2.3 CherryPy的请求/响应循环中的Unicode
20.3 翻译应用程序
20.3.1 Python源所在的位置
20.3.2 Kid模板的地域化
20.3.3 自动检测用户的语言偏好
20.3.4 具体地域对象
20.3.5 Admin il8n界面
20.4 小结
第21章 测试TurboGears应用程序
21.1 Nose
21.2 TurboGears中的testutil
21.3 Mechanize
21.4 Selenium
21.5 小结
第22章 TurboGears中的Identity和安全问题
22.1 使用Identity进行基本的身份验证和用户授权
22.2 使用Identity验证用户访问
22.3 避免常见的安全隐患
22.4 小结
附录 SQLAlchemy
前言
致谢
第一部分 TurboGears基础知识
第1章 TurboGears简介
1.1 为什么选择TurboGears
1.1.1 让简单的事情易于实现
1.1.2 让应用程序易于维护
1.2 TurboGears的历史
1.3 TurboGears、Ajax和Web 2.0
1.4 为什么TurboGears称得上“Pythonic”
1.5 可以使用TurboGears做什么
1.6 TurboGears的新功能
1.7 小结
第2章 TurboGears起步
2.1 安装TurboGears和SQLite
2.2 创建“Hello World”应用程序
2.3 使用简单模板
2.4 自定义问候语
2.5 小结
第3章 TurboGears应用程序的架构
3.1 什么是MVC
3.2 设计模式和面向对象MVC
3.3 了解SQLObject和TurboGears模型
3.4 了解CherryPy以及TurboGears控制器
3.5 了解Kid和TurboGears视图
3.6 MVC遇到了Ajax
3.7 小结
第二部分 构建简单的TurboGears应用程序
第4章 创建简单的应用程序
4.1 构建简单的书签收藏站点
4.2 测试TurboGears应用程序
4.3 增加书签的简易表单
4.4 小结
第5章 增强书签应用程序
5.1 更新模型
5.2 根据分类列出书签
5.3 更新表单
5.4 将所有部分融为一体
5.5 选择类别
5.6 小结
第三部分 探究实际TurboGears应用程序
第6章 在WhatWhat Status中探究更加复杂的模型
6.1 WhatWhat Status是什么
6.2 登录并且使用WhatWhat Status
6.3 探究WhatWhat Status的模型
6.4 编写更好的模型类
6.4.1 将所有模型逻辑存放于模型方法中
6.4.2 将复杂的关联逻辑封装在新的类中
6.5 小结
第7章 WhatWhat Status中的控制器、视图以及JavaScript
7.1 Dashboard控制器
7.1.1 WhatWhat中的安全和身份验证
7.1.2 探索Dashboard的index()方法
7.2 Dashboard模板
7.3 增加新的项目
7.4 Dashboard控制器:new_project
7.5 小结
第8章 WhatWhat Status中的RSS、Cookies和动态视图
8.1 Cookies和最近更新
8.2 Recent Changes模板
8.3 WhatWhat Status中的Widget
8.4 使用FeedController简化RSS
8.5 小结
第9章 Ajax和WhatWhat Status项目
9.1 处理Ajax请求
9.1.1 Ajax请求/HTML响应
9.1.2 Ajax请求/JSON响应
9.1.3 Ajax和XML请求
9.2 深入研究Project控制器的方法
9.3 初识project.kid
9.3.1 为项目页面做好铺垫
9.3.2 使用Ajax更新项目状态以及项目描述
9.4 小结
第四部分 SQLObject与TurboGears模型
第10章 SQLObject基础
10.1 ORM基础
10.1.1 谁需要ORM
10.1.2 ORM的替代方案
10.1.3 ORM的劣势
10.2 SQLObject的基本特性
10.2.1 基本的连接管理
10.2.2 根据SQLObject的继承类自动创建数据库的框架
10.2.3 使用Metadata类对行为进行细微的控制
10.2.4 根据已有的数据库框架自动生成表描述
10.3 简单数据库查询
10.3.1 通过ID获取单个对象
10.3.2 获取整个数据表
10.3.3 根据列值获取数据行
10.4 小结
第11章 精通SQLObject
11.1 映射关联
11.1.1 一对多关联
11.1.2 多对多关联
11.2 直接的SQL查询
11.3 智能查询
11.3.1 基于sqlbuilder的查询
11.3.2 多表联合查询
11.3.3 表连接
11.3.4 嵌套查询
11.4 操作大型结果集
11.4.1 以子集的方式操作大型结果集,而非list()方法
11.4.2 别实例化大型数据集,直接使用SQL
11.4.3 对大量的插入、更新和删除操作使用相同的方法
11.4.4 别为了一个对象而多次访问数据库
11.5 小结
第12章 自定义SQLObject的功能
12.1 使用sqlmeta自定义SQLObject类
12.1.1 深入探索sqlmeta类
12.1.2 列、索引和连接
12.1.3 命名技巧
12.1.4 延迟更新和缓存
12.1.5 过期数据行
12.1.6 默认排序
12.2 高级的SQLObject自定义
12.2.1 增加魔力属性
12.2.2 覆写属性访问
12.3 SQLObject和继承
12.3.1 Python对象、继承和聚合
12.3.2 聚合与标准Python继承的比较
12.3.3 SQLObject聚合与继承的比较
12.4 SQLObject和事务
12.4.1 事务和连接
12.4.2 sqlhub和事务
12.4.3 使用包装函数封装事务
12.4.4 使用修饰器封装事务
12.5 小结
第五部分 TurboGears视图技术
第13章 使用Kid实现动态模板
13.1 使用Kid创建动态模板
13.1.1 使用Python增强的处理指令符
13.1.2 生成内容的表达式
13.1.3 控制结构
13.1.4 Kid的内建函数
13.2 超越基础:让模板保持DRY
13.2.1 使用py:match进行转化
13.2.2 使用py:match创建自定义标签
13.2.3 使用py:extends创建父模板
13.3 融会贯通
13.4 小结
第14章 使用MochiKit创建更好的JavaScript代码
14.1 概述
14.1.1 MochiKit的封装
14.1.2 MochiKit的交互式命令解释程序
14.2 MochiKit及其交互式命令解释程序简介
14.3 Base方法
14.3.1 比较问题
14.3.2 更复杂的比较问题
14.3.3 JavaScript中的对象
14.3.4 JavaScript和Python的区别
14.3.5 对象的表示
14.3.6 JSON序列化
14.3.7 使用数组
14.3.8 Pythonic版的this
14.3.9 对调用函数的优化
14.3.10 类字典对象
14.3.11 使用查询字符串
14.3.12 MochiKit.Base中的函数
14.4 JavaScript中的迭代器
14.4.1 创建一个迭代器
14.4.2 Itertools中的工具
14.4.3 MochiKit.Iter所特有的函数
14.5 文档对象模型
14.5.1 获取元素
14.5.2 使用样式
14.5.3 创建DOM节点
14.5.4 简单事件
14.5.5 其他DOM函数
14.6 使用MochiKit.Logging来调试程序
14.6.1 使用Logging
14.6.2 扩展Logging
14.6.3 简单的日志示例
14.7 使用颜色
14.7.1 示例
14.7.2 获得颜色的更多方法
14.7.3 颜色转换
14.7.4 修改颜色
14.8 字符串的转换和值的格式化
14.8.1 处理日期和时间
14.8.2 格式化数字
14.8.3 其他格式化函数
14.9 小结
第15章 使用MochiKit增强Ajax
15.1 处理异步事件——包括Ajax请求
15.1.1 处理迟来的结果
15.1.2 创建一个请求
15.1.3 错误处理
15.1.4 参数传递
15.1.5 Ajax的局限性
15.1.6 使用JSON
15.1.7 使用计时器
15.1.8 取消
15.1.9 Ajax、计时器和取消的组合
15.1.10 深入了解回调函数
15.2 使用MochiKit.Signal处理JavaScript事件
15.2.1 初识MochiKit.Signal
15.2.2 连接与断开连接
15.2.3 使用MochiKit的Cross-Browser Event对象
15.2.4 自定义事件
15.3 “WowFactor”的视觉效果
15.3.1 圆角效果
15.3.2 初识Effects
15.3.3 效果选项
15.3.4 核心效果
15.3.5 组合效果
15.3.6 自定义效果
15.3.7 效果示例
15.3.8 Sortables和DragAndDrop
15.4 小结
第16章 TurboGears Widget:将CSS、XHTML和JavaScript融合为可复用的组件
16.1 理解Widget
16.1.1 初始化时候的自定义
16.1.2 呈现时候的属性赋值
16.1.3 在Widget中使用可调用对象
16.2 表单Widget
16.2.1 自定义表单布局
16.2.2 表单字段Widget
16.3 复合Widget
16.4 Widget与校验
16.4.1 FormEncode校验器如何集成至表单Widget中
16.4.2 更多的校验器
16.4.3 模式校验基础
16.5 CSS、JavaScript和Widget
16.6 创建自定义Widget
16.7 Ajax Widget的剖析
16.8 小结
第六部分 CherryPy与TurboGears控制器技术
第17章 CherryPy和TurboGears的修饰器
17.1 CherryPy的URL解析
17.2 CherryPy与HTTP请求/响应循环
17.3 CherryPy过滤器
17.3.1 输入过滤器
17.3.2 输出过滤器
17.3.3 自行创建过滤器
17.4 CherryPy和TurboGears配置
17.5 修饰器
17.5.1 expose()
17.5.2 validate()
17.6 错误及异常处理
17.6.1 有效性错误
17.6.2 复合句柄
17.6.3 Exception Handling
17.7 TurboGears中的REST样资源
17.8 小结
第18章 部署 TurboGears
18.1 选择部署环境
18.1.1 服务器使用的作业系统Linux、Mac OS、Windows
18.1.2 该在其他网页服务器后运行CherryPy吗
18.1.3 TurboGears基础部署设定
18.2 使用mod_rewrite或mod_proxy连接到CherryPy
18.2.1 在CherryPy前使用代理的优缺点
18.2.2 设定Apache与mod_rewrite
18.2.3 设定Apache以直接提供静态文件连接
18.2.4 设定CherryPy在网页服务器后工作
18.2.5 确保CherryPy持续运作
18.3 在mod_python上运行CherryPy
18.3.1 使用mod_python的优缺点
18.3.2 为mod_python设定Apache/CherryPy
18.4 在网页服务器后运行CherryPy的其他方法
18.5 网站的扩充性
18.5.1 扩充Sessions
18.5.2 扩充程序
18.5.3 低花费的扩充
18.6 小结
第七部分 TurboGears扩展
第19章 TurboGears的工具箱及其工具
19.1 工具箱简介
19.2 ModelDesigner
19.3 CatWalk
19.4 WebConsole
19.5 Widget浏览器
19.6 Admil8n和System Info
19.7 tg-admin命令
19.8 其他TurboGears工具
19.9 小结
第20章 国际化
20.1 在Python中处理Unicode
20.2 在TurboGears中处理Unicode
20.2.1 SQLObject和Unicode
20.2.2 Kid模板
20.2.3 CherryPy的请求/响应循环中的Unicode
20.3 翻译应用程序
20.3.1 Python源所在的位置
20.3.2 Kid模板的地域化
20.3.3 自动检测用户的语言偏好
20.3.4 具体地域对象
20.3.5 Admin il8n界面
20.4 小结
第21章 测试TurboGears应用程序
21.1 Nose
21.2 TurboGears中的testutil
21.3 Mechanize
21.4 Selenium
21.5 小结
第22章 TurboGears中的Identity和安全问题
22.1 使用Identity进行基本的身份验证和用户授权
22.2 使用Identity验证用户访问
22.3 避免常见的安全隐患
22.4 小结
附录 SQLAlchemy
Rapid Web applications with TurboGears
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×