Size: 10236
Comment:
|
Size: 10414
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
=== Part I: TurboGears Fundamentals 第一部分:TurboGears基础知识=== | === Part I: TurboGears Fundamentals 第一部分:TurboGears基础知识 === |
Line 40: | Line 40: |
=== Part II: Building a Simple TurboGears Application 第二部分: 构建简单的TurboGears应用程序=== | === Part II: Building a Simple TurboGears Application 第二部分: 构建简单的TurboGears应用程序 === |
Line 54: | Line 54: |
=== Part III: Exploring a Real World TurboGears Application === * ["/chapter6"] Exploring More Complex Models in WhatWhat Status * ["/section6.1"] What Is WhatWhat Status? * ["/section6.2"] Logging in and Using WhatWhat Status |
=== Part III: Exploring a Real World TurboGears Application 第三部分 探究现实世界的TurboGears应用程序=== * ["/chapter6"] Exploring More Complex Models in WhatWhat Status 第6章 在WhatWhat Status中探究更加复杂的模型 * ["/section6.1"] What Is WhatWhat Status? WhatWhat Status是什么? * ["/section6.2"] Logging in and Using WhatWhat Status 登陆并且使用WhatWhat Status |
Line 98: | Line 98: |
===Part V: TurboGears View Technologies 第五部分 TurboGears视图技术=== | === Part V: TurboGears View Technologies 第五部分 TurboGears视图技术 === |
Line 147: | Line 147: |
=== Part VII: TurboGears Extras === | === Part VII: TurboGears Extras === |
- ["/Copyright"]
["/Praise"] for Rapid Web Applications with TurboGears
- ["/Prentice"] Hall Open Source Software Development Series
- ["/Preface"]
- ["/Acknowledgments"]
1. Part I: TurboGears Fundamentals 第一部分:TurboGears基础知识
["/chapter1"] Introduction to TurboGears 第1章 TurboGears简介
["/section1.1"] Why TurboGears? 为什么选择TurboGears?
["/section1.2"] The History of TurboGears TurboGears的历史
["/section1.3"] TurboGears, Ajax, and Web 2.0 TurboGears、Ajax和Web 2.0
["/section1.4"] Why TurboGears Values Being "Pythonic" 为什么TurboGears称得上是Pythonic?
["/section1.5"] What Can You Do with TurboGears? 你可以使用TurboGears做什么?
["/section1.6"] Coming Soon to a TurboGears Near You TurboGears即将为你带来的新功能
- ["/section1.7"] Summary 小结
["/chapter2"] Getting Started with TurboGears 第2章 TurboGears起步
["/section2.1"] Installing TurboGears and SQLite 安装TurboGears和SQLite
- ["/section2.2"] Creating a Hello World Application 创建“Hello World”应用程序
- ["/section2.3"] Say Hi! (Simple Template) 说声“Hi! ”(使用简单模板)
- ["/section2.4"] Custom Greetings (Hello from the Controller) 自定义问候语(来自控制器的问候)
- ["/section2.5"] Summary 小结
["/chapter3"] The Architecture of a TurboGears Application 第3章 TurboGears 应用程序的架构
- ["/section3.1"] What Is MVC? 什么是MVC?
- ["/section3.2"] Design Patterns and Object-Oriented MVC 设计模式和面向对象MVC
["/section3.3"] Understanding SQLObject and TurboGears Models 了解SQLObject和TurboGears模型
["/section3.4"] Understanding CherryPy and TurboGears Controllers 了解CherryPy和TurboGears控制器
["/section3.5"] Understanding Kid and TurboGears Views 了解Kid和TurboGears视图
- ["/section3.6"] MVC Meets Ajax MVC遇到了Ajax
- ["/section3.7"] Summary 小结
2. Part II: Building a Simple TurboGears Application 第二部分: 构建简单的TurboGears应用程序
- ["/chapter4"] Creating a Simple Application 第4章 创建简单的应用程序
- ["/section4.1"] Building a Simple Bookmark Collection Site 构建简单的书签收藏站点
["/section4.2"] Testing TurboGears Applications 测试TurboGears应用程序
- ["/section4.3"] A Simple Form to Add Bookmark 用于增加书签的简单表单
- ["/section4.4"] Summary 小结
- ["/chapter5"] Enhancing Our Bookmark Application 第5章 增强我们的书签(Bookmark)应用程序
- ["/section5.1"] Updating Our Model 更新我们的模型
- ["/section5.2"] Listing by Category 根据分类列出书签
- ["/section5.3"] Updating Our Form 更新我们的表单
- ["/section5.4"] Tying Everything Together 将所有部分融为一体
- ["/section5.5"] Selecting Categories 选择类别
- ["/section5.6"] Summary 小结
=== Part III: Exploring a Real World TurboGears Application 第三部分 探究现实世界的TurboGears应用程序===
["/chapter6"] Exploring More Complex Models in WhatWhat Status 第6章 在WhatWhat Status中探究更加复杂的模型
["/chapter7"] Controllers, Views, and JavaScript in the WhatWhat Status
- ["/section7.1"] Dashboard Controller
- ["/section7.2"] Dashboard Templates
- ["/section7.3"] Adding a New Project
- ["/section7.4"] Dashboard Controller new_project
- ["/section7.5"] Summary
["/chapter8"] RSS, Cookies, and Dynamic Views in WhatWhat Status
["/section8.1"] Cookies and RecentChanges
- ["/section8.2"] The Recent Changes Template
["/section8.3"] WhatWhat Status Widgets
["/section8.4"] Easy RSS with FeedController
- ["/section8.5"] Summary
["/chapter9"] Ajax and WhatWhat Status Projects
- ["/section9.1"] Handling Ajax Requests
- ["/section9.2"] Digging Into the Project Controller Methods
- ["/section9.3"] A First Look at project.kid
- ["/section9.4"] Summary
3. Part IV: SQLObject and TurboGears Models 第四部分 SQLObject与TurboGears模型
- ["/chapter10"] SQLObject Basics 第10章 SQLObject基础
- ["/section10.1"] ORM Basics ORM基础
- ["/section10.2"] Basic SQLObject Features SQLObject的基本特性
- ["/section10.3"] Simple Database Queries 简单数据库查询
- ["/section10.4"] Summary 小结
- ["/chapter11"] Mastering SQLObject 第11章 精通SQLObject
- ["/section11.1"] Mapping Relationships 关联映射
- ["/section11.2"] Straight SQL Queries 直接的SQL查询
- ["/section11.3"] Smart Queries 智能查询
- ["/section11.4"] Working with Large Result Sets 操作大型数据结果集
- ["/section11.5"] Summary 小结
- ["/chapter12"] Customizing SQLObject Behavior 自定义SQLObject的功能
- ["/section12.1"] Customizing SQLObject Classes with sqlmeta 使用sqlmeta自定义SQLObject类
- ["/section12.2"] More-Advanced SQLObject Customization 更多SQLObject的高级自定义
- ["/section12.3"] SQLObject and Inheritance SQLObject 和继承
- ["/section12.4"] SQLObject and Transactions SQLObject和事务
- ["/section12.5"] Summary 小结
4. Part V: TurboGears View Technologies 第五部分 TurboGears视图技术
- ["/chapter13"] Dynamic Templates with Kid 第13章 使用Kid实现动态模板
- ["/section13.1"] Creating Dynamic Templates with Kid 使用Kid创建动态模板
- ["/section13.2"] Beyond the Basics: Keeping Your Templates DRY (Don't Repeat Yourself) 超越基础:让你的模板保持DRY(Don't Repeat Yourself)
- ["/section13.3"] Bringing It All Together 融会贯通
- ["/section13.4"] Summary 小结
["/chapter14"] Creating Better JavaScript with MochiKit
- ["/section14.1"] How to Use This Chapter
["/section14.2"] Introduction to MochiKit and Its Interactive Shell
- ["/section14.3"] Base Functions
["/section14.4"] Iterators in JavaScript
- ["/section14.5"] The Document Object Model
["/section14.6"] Using MochiKit.Logging to Debug
- ["/section14.7"] Working with Color
- ["/section14.8"] String Conversions and Value Formatting
- ["/section14.9"] Summary
["/chapter15"] Effective Ajax with MochiKit
["/section15.1"] Handling Asynchronous EventsIncluding Ajax Requests
["/section15.2"] Handling JavaScript Events with MochiKit.Signal
- ["/section15.3"] Visual Effects for That "Wow Factor"
- ["/section15.4"] Summary
["/chapter16"] TurboGears Widgets: Bringing CSS, XHTML, and JavaScript Together in Reusable Components
- ["/section16.1"] Understanding Widgets
- ["/section16.2"] Form Widgets
- ["/section16.3"] Compound Widgets
- ["/section16.4"] Widgets and Validation
["/section16.5"] CSS, JavaScript, and Widgets
- ["/section16.6"] Creating Custom Widgets
- ["/section16.7"] Anatomy of an Ajax Widget
- ["/section16.8"] Summary
5. Part VI: CherryPy and TurboGears Controller Technologies
["/chapter17"] CherryPy and TurboGears Decorators
["/section17.1"] CherryPy URL Parsing
["/section17.2"] CherryPy and the HTTP Request/Response Cycle
["/section17.3"] CherryPy Filters
["/section17.4"] CherryPy and TurboGears Configuration
- ["/section17.5"] Decorators
- ["/section17.6"] Error and Exception Handling
["/section17.7"] RESTful Resources in TurboGears
- ["/section17.8"] Summary
["/chapter18"] TurboGears Deployment
- ["/section18.1"] Choosing Your Production Environment
["/section18.2"] Using mod_rewrite or mod_proxy to Connect to CherryPy
["/section18.3"] Running CherryPy on mod_python
["/section18.4"] Other Ways of Running CherryPy behind a Web Server
- ["/section18.5"] Scalability of Your Site
- ["/section18.6"] Summary
6. Part VII: TurboGears Extras
["/chapter19"] The TurboGears Toolbox and Other Tools
- ["/section19.1"] Toolbox Overview
["/section19.2"] ModelDesigner
["/section19.3"] CatWalk
["/section19.4"] WebConsole
- ["/section19.5"] Widget Browser
- ["/section19.6"] Admi18n and System Info
- ["/section19.7"] The tg-admin Command
["/section19.8"] Other TurboGears Tools
- ["/section19.9"] Summary
- ["/chapter20"] Internationalization
- ["/section20.1"] Dealing with Unicode in Python
["/section20.2"] Dealing with Unicode in TurboGears
- ["/section20.3"] Translating Your Application
- ["/section20.4"] Summary
["/chapter21"] Testing a TurboGears Application
- ["/section21.1"] Nose
["/section21.2"] TurboGears testutil
- ["/section21.3"] Mechanize
- ["/section21.4"] Selenium
- ["/section21.5"] Summary
["/chapter22"] TurboGears Identity and Security
- ["/section22.1"] Basic Authentication/Authorization with Identity
- ["/section22.2"] Validating User Access with Identity
- ["/section22.3"] Avoiding Common Security Pitfalls
- ["/section22.4"] Summary
7. Part VIII: Appendix
Appendix A. SQLAlchemy
- ["/sectionA.1"] A Quick Tour of SQLAlchemy
["/sectionA.2"] SQLAlchemy in TurboGears
- ["/sectionA.3"] Data Mapper and Active Record
["/sectionA.4"] More about ActiveMapper
- ["/sectionA.5"] How Objects Are Cached in SQLAlchemy
- ["/sectionA.6"] Should I Use SQLAlchemy or SQLObject?
- ["/sectionA.7"] Migrating a Project to SQLAlchemy
- ["/sectionA.8"] Deployment Configuration
- ["/sectionA.9"] Application Configuration
- ["/sectionA.10"] Class Definitions
- ["/sectionA.11"] Changing Calls to byName Methods
- ["/sectionA.12"] Updating Queries
- ["/sectionA.13"] Final Thoughts
::-- ZoomQuiet [DateTime(2007-06-06T16:40:46Z)] 反馈 PageComment2