- Copyright
Praise for Rapid Web Applications with TurboGears Prentice Hall Open Source Software Development Series Preface Acknowledgments Part I: TurboGears Fundamentals
[/chapter1] . Introduction to TurboGears
[/section1.1] . Why TurboGears?
[/section1.2] . The History of TurboGears
[/section1.3] . TurboGears, Ajax, and Web 2.0
[/section1.4] . Why TurboGears Values Being "Pythonic"
[/section1.5] . What Can You Do with TurboGears?
[/section1.6] . Coming Soon to a TurboGears Near You
- [/section1.7] . Summary
[/chapter2] . Getting Started with TurboGears
[/section2.1] . Installing TurboGears and SQLite
- [/section2.2] . Creating a Hello World Application
- [/section2.3] . Say Hi! (Simple Template)
- [/section2.4] . Custom Greetings (Hello from the Controller)
- [/section2.5] . Summary
[/chapter3] . The Architecture of a TurboGears Application
- [/section3.1] . What Is MVC?
- [/section3.2] . Design Patterns and Object-Oriented MVC
[/section3.3] . Understanding SQLObject and TurboGears Models
[/section3.4] . Understanding CherryPy and TurboGears Controllers
[/section3.5] . Understanding Kid and TurboGears Views
- [/section3.6] . MVC Meets Ajax
- [/section3.7] . Summary
Part II: Building a Simple TurboGears Application
- [/chapter4] . Creating a Simple Application
- [/section4.1] . Building a Simple Bookmark Collection Site
[/section4.2] . Testing TurboGears Applications
- [/section4.3] . A Simple Form to Add Bookmark
- [/section4.4] . Summary
- [/chapter5] . Enhancing Our Bookmark Application
- [/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
[/chapter6] . Exploring More Complex Models in 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
[/section] 8.3. WhatWhat Status Widgets
[/section] 8.4. Easy RSS with FeedController
- [/section] 8.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
Part IV: SQLObject and TurboGears Models
- [/chapter10] . SQLObject Basics
- [/section10.1] . ORM Basics
- [/section10.2] . Basic SQLObject Features
- [/section10.3] . Simple Database Queries
- [/section10.4] . Summary
- [/chapter11] . Mastering SQLObject
- [/section11.1] . Mapping Relationships
- [/section11.2] . Straight SQL Queries
- [/section11.3] . Smart Queries
- [/section11.4] . Working with Large Result Sets
- [/section11.5] . Summary
- [/chapter12] . Customizing SQLObject Behavior
- [/section12.1] . Customizing SQLObject Classes with sqlmeta
- [/section12.2] . More-Advanced SQLObject Customization
- [/section12.3] . SQLObject and Inheritance
- [/section12.4] . SQLObject and Transactions
- [/section12.5] . Summary
Part V: TurboGears View Technologies
- [/chapter13] . Dynamic Templates with Kid
- [/section13.1] . Creating Dynamic Templates with Kid
- [/section13.2] . Beyond the Basics: Keeping Your Templates 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
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
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
- Part VIII: Appendix
- Appendix A. SQLAlchemy
- Part VIII: Appendix
- [/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