John wiley sons zope bible

649 405 0
John wiley  sons zope bible

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

4857-3 cover 2/20/02 12:48 PM Page If Zope can it, you can it too Power, versatility, and broad community support have made Zope one of the fastest-growing Open Source platforms around This in-depth guide brings you up to speed fast on Zope’s innovative Web site and application development model Two veteran Zope developers cover all aspects of Zope in detail, from installation to advanced topics like debugging, persistence, and automatic indexing support Whether you’re a Web developer, a Web architect, or a content manager, you’ll learn all you need to know to put Zope to work Inside, you’ll find complete coverage of Zope 100% C O M P R E H E N S I V E 100% ONE HUNDRED PERCENT COMPREHENSIVE AUTHORITATIVE WHAT YOU NEED ONE HUNDRED PERCENT • Develop a complete multi-user application as a Python Product • Master content management and version control strategies • Manage databases using SQL and DTML tags • Use Zope’s built-in security to safeguard Web sites and applications ™ Zope enables you to give an entity a role on a particular object This is called a Local role Zope Most of the true work in Zope is done via the management interface • Learn Zope Product development using Python Products and ZClasses of the leading Open Source Web application server Master Zope’s innovative Web object development model Build secure, flexible, and powerful Web sites and Web applications • Find out how to run Zope behind Apache using PCGI, FCGI, or Proxy Pass You can install the Zope Packages on Linux using GnoRPM’s point and click interface Bonus CD-ROM • Zope • Adobe GoLive tryout version • Dreamweaver trial version from Macromedia • Plus sample applications and code from the book www.hungryminds.com Pentium PC, 128 MB RAM See the About the CD Appendix for details and complete system requirements $49.99 USA $74.99 Canada £39.99 UK incl VAT Reader Level: Shelving Category: Beginning to Advanced Web Development ISBN 0-7645-4857-3 *85 -AJEFBc — Paul Everitt, Co-founder and Vice President of Products, Zope Corporation Unleash the power • Set up and run Zope on Linux or Windows System Requirements: “The Zope Bible is an indispensable, hands-on guide to Zope product development.” ,!7IA7G4-feifhe!:p;o;t;T;T ope Z ™ BERNSTEIN & ROBERTSON Bible Zope and more on CD-ROM BONUS CD-ROM Zope plus sample code from the book Michael R Bernstein, Scott Robertson, and the Codeit Development Team a4857-3 FM.F 3/1/02 9:36 AM Page i Zope Bible ™ a4857-3 FM.F 3/1/02 9:36 AM Page ii a4857-3 FM.F 3/1/02 9:36 AM Page iii Zope Bible ™ Michael R Bernstein, Scott Robertson, and the Codeit Development Team Best-Selling Books • Digital Downloads • e-Books • Answer Networks • e-Newsletters • Branded Web Sites • e-Learning New York, NY ✦ Cleveland, OH ✦ Indianapolis, IN a4857-3 FM.F 3/1/02 9:36 AM Page iv Zope™ Bible Published by Hungry Minds, Inc 909 Third Avenue New York, NY 10022 www.hungryminds.com Copyright © 2002 Hungry Minds, Inc All rights reserved No part of this book, including interior design, cover design, and icons, may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording, or otherwise) without the prior written permission of the publisher Library of Congress Control Number: 2001118285 ISBN: 0-7645-4857-3 Printed in the United States of America 10 1B/SQ/QT/QS/IN Distributed in the United States by Hungry Minds, Inc Distributed by CDG Books Canada Inc for Canada; by Transworld Publishers Limited in the United Kingdom; by IDG Norge Books for Norway; by IDG Sweden Books for Sweden; by IDG Books Australia Publishing Corporation Pty Ltd for Australia and New Zealand; by TransQuest Publishers Pte Ltd for Singapore, Malaysia, Thailand, Indonesia, and Hong Kong; by Gotop Information Inc for Taiwan; by ICG Muse, Inc for Japan; by Intersoft for South Africa; by Eyrolles for France; by International Thomson Publishing for Germany, Austria, and Switzerland; by Distribuidora Cuspide for Argentina; by LR International for Brazil; by Galileo Libros for Chile; by Ediciones ZETA S.C.R Ltda for Peru; by WS Computer Publishing Corporation, Inc., for the Philippines; by Contemporanea de Ediciones for Venezuela; by Express Computer Distributors for the Caribbean and West Indies; by Micronesia Media Distributor, Inc for Micronesia; by Chips Computadoras S.A de C.V for Mexico; by Editorial Norma de Panama S.A for Panama; by American Bookshops for Finland For general information on Hungry Minds’ products and services please contact our Customer Care department within the U.S at 800-762-2974, outside the U.S at 317-572-3993 or fax 317-572-4002 For sales inquiries and reseller information, including discounts, premium and bulk quantity sales, and foreign-language translations, please contact our Customer Care department at 800-434-3422, fax 317-572-4002 or write to Hungry Minds, Inc., Attn: Customer Care Department, 10475 Crosspoint Boulevard, Indianapolis, IN 46256 For information on licensing foreign or domestic rights, please contact our Sub-Rights Customer Care department at 212-884-5000 For information on using Hungry Minds’ products and services in the classroom or for ordering examination copies, please contact our Educational Sales department at 800-434-2086 or fax 317-572-4005 For press review copies, author interviews, or other publicity information, please contact our Public Relations department at 317-572-3168 or fax 317-572-4168 For authorization to photocopy items for corporate, personal, or educational use, please contact Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, or fax 978-750-4470 LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND AUTHOR HAVE USED THEIR BEST EFFORTS IN PREPARING THIS BOOK THE PUBLISHER AND AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS BOOK AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE THERE ARE NO WARRANTIES WHICH EXTEND BEYOND THE DESCRIPTIONS CONTAINED IN THIS PARAGRAPH NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES REPRESENTATIVES OR WRITTEN SALES MATERIALS THE ACCURACY AND COMPLETENESS OF THE INFORMATION PROVIDED HEREIN AND THE OPINIONS STATED HEREIN ARE NOT GUARANTEED OR WARRANTED TO PRODUCE ANY PARTICULAR RESULTS, AND THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY INDIVIDUAL NEITHER THE PUBLISHER NOR AUTHOR SHALL BE LIABLE FOR ANY LOSS OF PROFIT OR ANY OTHER COMMERCIAL DAMAGES, INCLUDING BUT NOT LIMITED TO SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR OTHER DAMAGES FULFILLMENT OF EACH COUPON OFFER IS THE SOLE RESPONSIBILITY OF THE OFFEROR Trademarks: Hungry Minds and the Hungry Minds logo are trademarks or registered trademarks of Hungry Minds, Inc in the United States and other countries and may not be used without written permission Macromedia and Dreamweaver are trademarks or registered trademarks of Macromedia, Inc in the United States and/or other countries Copyright © 1997–2000 Macromedia, Inc 600 Townsend Street, San Francisco, CA 94103 USA All Rights Reserved Zope is a trademark or registered trademark of Zope Corporation All other trademarks are the property of their respective owners Hungry Minds, Inc., is not associated with any product or vendor mentioned in this book is a trademark of Hungry Minds, Inc a4857-3 FM.F 3/1/02 9:36 AM Page v About the Authors Michael Bernstein is an information architect for Codeit He has been a member of the Zope development community since it was released as Open Source in late 1998, and wrote the first community-contributed “How-To” for Zope in February of 1999 Michael was one of the technical reviewers for The Zope Book published by New Riders in 2001, and created the Zope category in the Open Directory Project (dmoz.org) Currently residing in Las Vegas, he has worked for two start-ups before joining Codeit and has built and managed various Content Management Systems and intranets using Zope His interests include Science Fiction Fandom, Open Source, and other self-organizing emergent phenomena His personal Web site is at http://www.michaelbernstein.com Scott Robertson co-founded Codeit in 1997, a company dedicated to building custom applications that help businesses increase productivity and lower expenses In 1998, he discovered a technology named Bobo that was so compelling that he learned Python and swore off Perl forever When Principia (an application built on Bobo) was renamed Zope and released as Open Source, he selected it as Codeit’s preferred Web platform An ardent believer in Open Source, he has contributed several products to the community and encourages his employees to the same When he’s not working he can usually be found creating strategies for achieving world domination, or at the very least devising ones that will annoy his partners The Codeit Development Team has over 15 years of combined Zope experience Besides the primary authors, other Codeit developers and staff contributed material to this book, including Nick Garcia, Erik Burrows, Forest Zachman, Brent Rogan, and Sam Stimson The entire Codeit team is dedicated to using Open Source technologies on behalf of our customers, so that at the conclusion of a project they have the skills, code, and documentation on how to change and scale each application we build, enabling them to be as self-reliant as they wish to be Beyond development, Codeit also offers Zope hosting as one of its services a4857-3 FM.F 3/1/02 9:36 AM Page vi Credits Acquisitions Editor Terri Varveris Project Editor Barbra Guerra Technical Editor Tom Deprez Copy Editors Katherine Dvorak Ryan Rader Permissions Editor Carmen Krikorian Editorial Manager Kyle Looper Project Coordinator Ryan Steffen Graphics and Production Specialists Sean Decker Joyce Haughey Gabriele McCann Heather Pope Betty Schulte Quality Control Technicians Laura Albert John Greenough Andy Hollandbeck Carl Pierce Linda Quigley Charles Spencer Media Development Specialist Travis Silvers Proofreading and Indexing TECHBOOKS Production Services Cover Illustration Kate Shaw a4857-3 FM.F 3/1/02 9:36 AM Page vii To Ruth, for doing such a good job raising me; to Roxanne, for making my life complete; and to Talia, for the future — Michael To Kyle Reid, welcome to the party Glad you could make it — Scott a4857-3 FM.F 3/1/02 9:36 AM Page viii a4857-3 FM.F 3/1/02 9:36 AM Page ix Preface H i! You’re holding the Zope Bible, a book we suspect will change how you look at building Web sites and Web applications If you’re like most Web developers and designers, you’re probably always looking for ways to improve your process, both for building and for maintaining Web sites Whether the sites you’re building are consumer-oriented Web applications, content-centric publishing sites, intranets, or even vanity sites, you want to build them faster, maintain them easier, and integrate other people into your workflow with a minimum of hassle and fuss Zope is a tool that is hard to describe, as in many ways it’s in a category all its own So, rather than describe what it is, it’s better to describe what Zope can for you: ✦ Zope contains a templating language for creating dynamic pages, making it easier to create and maintain a common look and feel for your site ✦ Zope uses a powerful scripting language (Python) for creating business logic, making it easy to create powerful Web applications ✦ Zope has a built-in Web management interface so you can create and maintain entire sites with nothing more than a standard browser and an Internet connection ✦ Zope has a built-in object database, making it easy to store content, logic, and presentation in a single place ✦ Zope has a built-in security framework, making it easy and safe to delegate maintenance of sections or subsections of the site to other people ✦ Zope sites are also accessible via FTP and WebDAV, making it easier to leverage the desktop site creation tools you already use ✦ Zope is written in Python, making it easy to extend and enhance with your own customizations ✦ Zope has built-in content management tools such as Version objects and Undo, which make it easier to safely modify and update a site while it’s “live.” In other words, if you build Web sites, Zope is the tool for you k4857-3 Index.F 604 3/1/02 9:43 AM Page 604 Index ✦ R–S reverse attribute dtml-in tag, 92–93 dtml-tree tag, 112, 114 revision, tracking for DTML Document, 50 Revision Control System (RCS), 329 Rfc822() method, dtml-var tag, 86 right bracket, converting, 83 role Anonymous, 372 Authenticated, 372 creating, 373 custom, 374 local, 379–383 Manager, 372 Owner, 373 Permissions, assigning to, 374–375 proxy, 376–379 purpose, 56, 372 replacing in Proxy view, 40 searching for, 47 security, 270–271 _roles_ attribute, 279–280, 413 ROLLBACK statement, relational database, 358 root, TALES starting point, 532 Root Folder management interface, 33 Navigator frame, 35 viewing transaction from, 40 root user, installing Zope, 16 round, Python built-in function, 132, 443 round() method, Python math module, 76 rounding, Python, 132 row, relational database, 337 RPM See Red Hat Package Management rules of acquisition, DTML, 70 RunTime exception, 428 RuntimeError, Python built-in function, 443 Rushing, Sam, S same_type, 444 Save Changes Edit view, 48 Properties view, 38–39 scalability, 12, 560–561 schema, relational database, 336 script, Python-based built-in functions, 443 calling from DTML, 446–447 creating, 440–442 example, 448–449 importance of, 439 Parameter List, 440 Products.PythonScripts.standard, 441 security, 443–444 script variable, 445 scripting language, 121 search engine scope, search engines, ZCatalog adding catalog to site, 492 Advanced tab, 492, 514–515 Catalog tab, 492 CatalogAwareness, 508–509 complex queries, 507–508 definition, 491 field indexes, 495, 510, 512 Find Objects tab, 492 index, adding, 492 Indexes tab, 492 keyword indexes, 495, 512–513 metadata, 497 Metadata tab, 492 path indexes, 495, 514 populating, 493 Product list, 63 Python product, accessing from, 507 Python script object, accessing from, 505–506 search interface, building, 498–499 search_form method, 500 search_results method, 501–504 subtransactions, 514–515 text indexes, 495, 510 vocabularies, 510–511 search functions, Find view, 46–47 search interface, building in ZCatalog, 498–499 search_form method, ZCatalog, 500 search_results method, ZCatalog, 501–504 second() method, dtml-var tag, 86 secure monitor service, ZServer, 24 Secure Socket Layer (SSL), 273 k4857-3 Index.F 3/1/02 9:43 AM Page 605 Index ✦ S security Access-Control List, 269 acquisition, 271 AddressBook.py, 282–286 authentication, 268 authorization, 268 built into Zope, 4, 273–274 changing default policy, 279 ClassSecurityInfo object, 278 default policy, 274 definition, 267–268 delegation, 329–331 document template, 428–429 Entry.py, 286–288 importing framework, 278 InitializeClass() method, 278 Internet, design of, 268 local role, 272–273 model, built-in, ownership, 271–272 permission, 269–270, 367 Python-based script, 443–444 restricted code, 269 role, 270–271, 367 Secure Socket Layer, 273 Server-Side Trojan Attack, 271–272 template, 428–429 traversal, ZPublisher, 413 unrestricted code, 269 user folders, 367 Security tab Acquire permission setting? column, 377 Permissions, 374 Security view changing permissions, 39 limiting access, 55 SecurityCalledByExecutable() method, Python string module, 77 SecurityCheckPermission() method, Python string module, 78 SecurityGetUser() method, Python string module, 78 SecurityValidate() method, Python string module, 78 SecurityValidateValue() method, Python string module, 78 select property, ZClasses, 471–473 SELECT statement, Structured Query Language, 341–342 selection property type, 464–465 selection type, Python equivalent for, 39 self argument, _bobo traverse_() method, 412 self._changed_(1), 217 self.reindex_object(), 508–509 selling products online, semicolon (;), entity syntax, 79 sequence module, Python len() method, 76 max() method, 76 min() method, 76 reorder() method, 76 sequence-end variable, dtml-in tag, 94 sequence-even variable, dtml-in tag, 95 sequence-index variable, dtml-in tag, 94 sequence-index-variable variable, dtml-in tag, 95 sequence-item variable, dtml-in tag, 94 sequence-key variable, dtml-in tag, 94 sequence-Letter variable, dtml-in tag, 94 sequence-letter variable, dtml-in tag, 94 sequence-number variable, dtml-in tag, 94 sequence-odd variable, dtml-in tag, 95 sequence-query variable, dtml-in tag, 99 sequence-Roman variable, dtml-in tag, 94 sequence-roman variable, dtml-in tag, 94 sequence-start variable, dtml-in tag, 94 sequence-step-size variable, dtml-in tag, 99 sequence-var-variable variable, dtml-in tag, 95 SERVER_NAME, CGI environment variable, 420 SERVER_PORT, CGI environment variable, 420 SERVER_PROTOCOL, CGI environment variable, 420 server-side Trojan attack, 271–272, 373 SERVER_SOFTWARE, CGI environment variable, 420 Services Manager, manually starting and stopping Zope, 22–23 Sessions, Product list, 63 set() method, 104, 423 605 k4857-3 Index.F 606 3/1/02 9:43 AM Page 606 Index ✦ S Set Preferences default settings, management interface, 34 Show Top Frame, 34 Text Area Height, 35, 48 Text Area Width, 35, 48 Use Style Sheets, 34 setattr, Python built-in function, 443 _setattr_ method, 400 setBase() method, 425 setCookie() method, 424 setHeader() method, 424 setServerURL() method, 423 _setstate_() method, 401–402, 406 setStatus() method, 424 setVirtualRoot() method, 423 severity variables, zLOG module, 552–553 SHA algorithm, 3671 Shorter button, Edit view, 48 Show Top Frame, Set Preferences, 34 shutdown Ctrl-C in Command Prompt window, 21 Shutdown button in Control Panel folder, 21 stop batch file, Linux, 22 Shutdown button, Control Panel, 59 SimpleZClass_add() method, 459 SimpleZClass_addForm() method, 459 SimpleZClass_add_permission, 461 SimpleZClass_factory, 461 single attribute, dtml-tree tag, 112 single character, handling, 133 single quote (‘) escape code, 136 string, 133–134 singleton tag, DTML, 68, 430–431 SiteAccess, Product list, 63 size, sorting objects by, 44 size attribute, dtml-in tag, 92 size attribute, dtml-var tag, 81 skip_unauthorized attribute, dtml-in tag, 92 skip_unauthorized attribute, dtml-tree tag, 112 slash (/), preceding close tag with, 68 slice notation list, 141–142 returning subset of elements, 133 SMB User Folder, 384 Smtphost attribute, dtml-sendmail tag, 118 SOAP, protocol support, socket, pickable item, 401 Solaris, sort attribute dtml-in tag, 92, 93 dtml-tree tag, 112, 114 sort objects, 44 sort_by variable, 261–263 sound file, storing as File object, 52 source code on CD, 14, 569 source text, conversion of DTML tags into, 66 space, replacing with plus sign, 83 spacify attribute, dtml-var tag, 80 special namespace variable (_), 74 special variables, REQUEST object, 419 Specialized User folders, 383 split() method, 162 SQL See Structured Query Language SQL application example adding restaurant, 362, 364 adding vote for restaurant, 362 deleting a restaurant, 362 Gadfly connection, 360–361 listing restaurants, 363 listing restaurants and votes, 365 listing voters, 363 listing votes for restaurant, 363 purpose, 359 removing restaurant, 364 resetting votes, 363, 365 table schema, 361 user interface, 363–364 voting, 365 workspace, 360 SQL Method acquiring parameters, 354–355 add screen, 350 caching, 356–358 dtml-and tag, 349 dtml-call tag, 351 dtml-in tag, 351–352 dtml-or tag, 349 dtml-sqlgroup tag, 349 k4857-3 Index.F 3/1/02 9:43 AM Page 607 Index ✦ S dtml-sqltest tag, 348 dtml-sqlvar tag, 348 dynamic, 348–349 external method, 352 importance of, 347 Pluggable Brains, 356 Python Products, 353–354 REQUEST object, 355 sqlListEmployee SQL Method edit screen, 351 static, 347 transactions, 358–359 URL, accessing objects via, 355 sqlBody option, 354 sql_quote attribute, dtml-var tag, 81 square brackets, 134 SSL See Secure Socket Layer SSL certificate authenticator, 383 stack, namespace DTML Client Object, 73 DTML Request Object, 73–74 standard_addressbook_header() method, 275 StandardAddressBookHeader.dtml, 231–232 StandardCacheManagers, Product list, 63 standard-deviation-nnn variable, dtml-in tag, 97 standard-deviation-n-nnn variable, dtml-in tag, 97 StandardError, Python built-in function, 443 standard_error_message, 44 standard_error_message() method, dtmltry tag, 110 standard_html_footer() method, 69 standard_html_header() method example, 69 Root Folder, 51 ZClasses, 470 standard_mail_action object, 324 standard.py, 441 /start, 18 Start attribute, dtml-in tag, 92 start.bat, 15 start-batch-number, 238 State attribute, Entry class, 205 STDERR, zLOG, 27 STDOUT, ZServer, 27 /stop, 22 stop batch file, Linux, 22 stored procedure, database, 343 storing document template code in file, 428 str, Python built-in function, 443 str() method, Python string module, 77–78, 137 string backslash character, 134 converting, 138–139 converting to floating point, 75 converting to plain integra, 75 creating, 134 decoding, 78 definition, 133 escape codes, 136–137 formatting, 137–138 index, 134 percent operator, 137–138 pickable item, 401 quotation marks, 133–134 returning ASCII value of one character, 77 spanning multiple lines, 135 triple quoting, 135 string expressions, Template Attribute Language, 535–536 string module, Python chr() method, 76 getattr() method, 77 getitem() method, 77 hasattr() method, 77 has_key() method, 77 namespace() method, 77 ord() method, 77 range() method, 77 render() method, 77 SecurityCalledByExecutable() method, 77 SecurityCheckPermission() method, 78 SecurityGetUser() method, 78 SecurityValidate() method, 78 SecurityValidateValue() method, 78 special namespace variable, 74 str() method, 78 test() method, 78 string property type, 464 607 k4857-3 Index.F 608 3/1/02 9:43 AM Page 608 Index ✦ S–T string type conversion code, ZPublisher, 415 Structured Query Language (SQL) accessing data, 340–341 CREATE TABLE statement, 342–343 datatypes, 343 DELETE statement, 342 DROP TABLE statement, 343 INSERT statement, 342 protocol support, SELECT statement, 341–342 testing queries, 346–347 UPDATE statement, 342 WHERE clause, 341–342 Structured-text format, dtml-var tag, 83 subclassing, ZClasses, 488–489 subfolder granting access to, 55 searching, 47 Subject attribute, dtml-sendmail tag, 118 sub-object, 393 subpath variable, 445 subquery, database, 343 subtransactions, 405–408, 514–515 sum, Python numeric operation, 130 Sun SPARC, 13–14 support, mailing list, 30 supportUndo() method, 410 switching authentication, 35 Sybase database adaptor, Oracle, compared to, 344 syntax, DTML tag, 67 syntax, tag, 67 syntax errors, DTML, 48 SyntaxError, Python built-in function, 443 sys package, importing, 394 sys.maxint command, 130 system requirements, 567–568 T -t, ZServer command line switch, 25 table, relational database, 337 table schema, restaurant application example, 361 tag, DTML block, 434–437 creating, 430 getting values, 432–433 rendering Python expressions, 433–434 singleton, 430–431 syntax, 67–68 using arguments in, 431–432 TAL See Template Attribute Language TAL Expression Syntax (TALES) importance of, 531–532 not: expression flag, 536 path expressions, 532–534 Python expressions, 534–535 string expressions, 535–536 Taller button, Edit view, 48 tar compression scheme, 29 extracting Linux installation files, 16, 18 extracting new product files, 29 tarball, installation files, 16 temp_folder, 35 template arguments, 427 calling, 427 creating object, 426 guarded_getattr() method, 428 security, 428–429 storing code in file, 428 TALES starting point, 532 template.dtml, 428 Template Attribute Language (TAL) Add Page Template form, 520 Add Presentation Template form, 521 attributes statement, 528 code reuse, 537–538 condition statement, 527 content statement, 525 define statement, 529 development of, 520 Edit Page Template form, 521 Expression Syntax, 531–532 Macro Expansion, 536–537 macro slots, 538–540 not: expression flag, 536 omit-tag statement, 529–530 on-eror statement, 530–531 order of execution, 531 path expressions, 532–534 Python expressions, 534–535 k4857-3 Index.F 3/1/02 9:43 AM Page 609 Index ✦ T repeat statement, 525–526 replace statement, 524 string expressions, 535–536 XHTML attributes, 522 template language, tag-based, 66 template source, 426 template.dtml, 428 template_method() function, 429 TemporaryFolder, Product list, 63 test, DTML utility function, 443 test() method, Python string module, 78 testing SQL statements, 346–347 text Edit view, 48 searching for with Find view, 46 text indexes, ZCatalog, 495, 510 text property type, 464 text type, Python equivalent for, 39 text type conversion code, ZPublisher, 415 third-party Web server, this() method, 78 thousands_commas attribute, dtml-var tag, 81 thread concurrency, 408 conflict, 408–409 through-the-Web, ZClasses, 456 time, searching for with Find view, 46–47 timezone() method, dtml-var tag, 86 title Address Book, 202 DTML Document, 47–48 File object, 52 image object, 54 Title attribute, Entry class, 205 title property, default installation, 67 title text index, 495 title_or_id() method, 471 token property type, 464–465 tokens type, Python equivalent for, 39 tokens type conversion code, ZPublisher, 415 top frame, management interface, 33 total-nnn variable, dtml-in tag, 97 tpValues() method, dtml-tree tag, 113 TRACE severity variable, zLOG module, 552 traceback, Manage Product view, 63 Traceback link, Product Management folder, 30 transaction abort() method, 402–403 atomic, 10 committing, 398–399 removing to save space, 410–411 rolling back, supportUndo() method, 410 Undo view, 40 undoLog() method, 410 Transaction Manager atomic transaction, 10 component relationship diagram, transactional management, supporting, Transience, Product list, 63 traversal, ZPublisher _bobo traverse_() method, 412 security, 413 URL, 412 tree-colspan variable, dtml-tree tag, 155 tree-item-expanded variable, dtml-tree tag, 155 tree-item-url variable, dtml-tree tag, 116, 155 tree-level variable, dtml-tree tag, 155 tree-root-url variable, dtml-tree tag, 116, 155 tree-state variable, dtml-tree tag, 155 trigger database, 343 Python Script object, 53 triple quoting, 135 Trojan attack, server-side, 373 troubleshooting, 569 try statement, exceptions, 171 tuple, Python built-in function, 443 tuple of dictionaries, 293 tuple type conversion code, ZPublisher, 415 tuples compared to lists and strings, 143 definition, 133 manage_options, 195–196 pickable item, 401 syntax, 143–144 type property, 37 searching for with Find view, 46 sorting objects by, 44 609 k4857-3 Index.F 610 3/1/02 9:43 AM Page 610 Index ✦ T–U Type, Properties view, 38 Type attribute, dtml-boundary tag, 119 Type attribute, dtml-mime tag, 119 type conversion codes, ZPublisher, 415 TypeError, Python built-in function, 76, 138, 443 U -u, ZServer command line switch, 26 uid number specifying for ZServer, 26 UML See Unified Modeling Language UML diagram, Address Book, 199, 206 unauthenticated user, 56 uncompressing new products, 29 underscore (_) expr attribute, 74 private name, beginning with, 165 Undo management tab, 193 undo support pack operation, 60 supportUndo() method, 410 transaction, undoLog() method, 410 Undo view, 30 unichr() method, 78 unicode() method, 78 unicode module, Python, 78 Unified Modeling Language (UML), 200 universal header and footer, 11 UNIX binaries, 16 UNIX domain socket, path name, 26 UNIX platform, unrestricted code, security, 269 unwrapping wrapped object, 391–392 UPDATE statement, Structured Query Language, 342 upload file, 52 Upload File, Edit view, 48 upper attribute, dtml-var tag, 68, 80 URL calling scripts from, 447–448 objects, 37 traversal, 412–413 ZPublisher convenience variable, 421 url attribute, dtml-tree tag, 112 url param attribute, dtml-tree tag, 114–115 URLn, ZPublisher convenience variable, 421 urlparam attribute, dtml-tree tag, 112 URLPATHn, ZPublisher convenience variable, 421–422 url_quote attribute, dtml-var tag, 81 url_quote_plus attribute, dtml-var tag, 81 U.S Navy, Use Style Sheets, Set Preferences, 34 user allowed domains, setting, 370 creating, 368 editing, 368–370 emergency, 370–372 role, assigning, 370 TALES starting point, 532 user actions, Address Book, 276 user base, User Folder accommodating multiple, 382 acl_users, 56 adding, 56 creating, 41 database, 55 editing, 56 user input, REQUEST variable, 67 user interface restaurant application example, 363–364 Web-based, User object Add User form, 56 domain, 56 editing, 57 importance of, 55 managing, 57–58 role, 56 UserDB User Folder, authentication adaptor, 385 username setting for initial user, Linux, 17 setting for initial user, Microsoft Windows 9x/NT/200, 15 /usr/local, installing Zope directory, 16 /usr/local/Zope-2.5.0, changing name of, 16 uue, 119 uuencode, 119 k4857-3 Index.F 3/1/02 9:43 AM Page 611 Index ✦ V–W V _v_, volatile attribute, 401–402 value, property, 37 Value field, Properties view, 38 ValueError, Python built-in function, 76, 443 values() method, 146, 423 ValuesFor() method, 513 /var changing ownership of, 18 location, 23 ZServer log file, 27 VARCHAR, CREATE TABLE statement, 343 variable binding, 444–445 importance of, 126 legal names of, 127–128 record conversion code, combining with, 418 user input, 127 variable substitution, 79 variance-nnn variable, dtml-in tag, 97 variance-n-nnn variable, dtml-in tag, 97 _v_CurrentPos attribute, 406 version committing, creating, 325–326 definition, 325 discarding changes, 328–329 joining, 326–327 leaving, 326–327 saving changes, 328–329 working in, 327–328 version, ZODB aborting, 411 saving, 411 Version Management, Control Panel link, 58, 62 vertical bar (|), 533 vertical tab, escape code, 136 view, accessing, 37 View interface, ZClasses, 473–474 View tab files, 54 image object, 55 index_html object, 46 Properties view, displaying, 37 vocabularies, ZCatalog, 510–511 volatile attribute definition, 401 example, 406 voting, restaurant application example, 365 W -w, ZServer command line switch, 20, 26 WARNING severity variable, zLOG module, 552 Web browser cookie-enabled, 425 logging into Zope with, 18 user interface, Web server built-in, third-party, Web site copying to a different machine, 23 exporting, 45 WebDAV built-in support for, component relationship diagram, protocol support, Web-development toolkit, what you see is what you get (WYSIWYG) HTML editor, 11 WHERE clause, Structured Query Language, 341–342 while statement, Python, 151–152 Whole-dollars format, dtml-var tag, 83 Wider button, Edit view, 48 width, image object, 54 Windows 95/98/NT/2000, Windows registry, 28 wo.pcgi.py, 577 WORA See write-once-run-anywhere workspace, restaurant application example, 360 Workspace frame importance of, 35 management interface, 33 switching between object views, 36 World Wide Web (WWW) component relationship diagram, origin of, 611 k4857-3 Index.F 612 3/1/02 9:43 AM Page 612 Index ✦ W–Z wrapper aq_base attribute, 391 aq_chain attribute, 391 aq_inner attribute, 391, 396 aq_parent attribute, 391 aq_self attribute, 391 _getattr_() method, 390 importance of, 390 is operator, 390–391 _of_() method, 391, 393 parent, accessing, 392 testing whether object is, 392 unwrapping, 391–392 ZODB, 392 write() method, 424 write-once-run-anywhere (WORA), 121 WWW See World Wide Web WYSIWYG See what you see is what you get HTML editor X -X, ZServer command line switch, 27 XEMacs, 147 XHTML See Extensible Hypertext Markup Language XHTML attributes, Template Attribute Language, 522 XML See Extensible Markup Language XML-RPC component relationship diagram, protocol support, x-uue, 119 x-uuencode, 119 Y year() method, dtml-var tag, 86 yy() method, dtml-var tag, 86 Z -Z, ZServer command line switch, 25 -z, ZServer command line switch, 25 Z Object Database (ZODB), 25 _built-ins_ namespace, 398 changing size of cache, 403–404 command line, 398 commit() method, 399 component relationship diagram, copying, 23 Data.fs, 19–20 emptying cache, 404 get_transaction() method, 398 inactive objects, changing amount of time in cache, 404 journaling schema, 10 number of threads to use, 25 object, storing, 399–400 Persistent, objects that inherit from, 401 Pickle module, 397, 401 relational database, compared to, 335–336 searching with ZPublisher, transactions, committing, 398 transparent persistent object support, 10 volatile attribute, 401 ZCatalog, 397 Z2.log, 27 z2.py, 24 ZCatalog adding catalog to site, 492 Advanced tab, 492, 514–515 Catalog tab, 492 CatalogAwareness, 508–509 complex queries, 507–508 definition, 491 field indexes, 495, 510, 512 Find Objects tab, 492 index, adding, 492 Indexes tab, 492 keyword indexes, 495, 512–513 metadata, 497 Metadata tab, 492 path indexes, 495, 514 populating, 493 Product list, 63 Python product, accessing from, 507 Python script object, accessing from, 505–506 search interface, building, 498–499 search_form method, 500 search_results method, 501–504 subtransactions, 514–515 text indexes, 495, 510 vocabularies, 510–511 ZClasses catalog awareness, 485 constructor, editing, 485–487 creating, 459–461 custom properties, 464 default view, 461–463 k4857-3 Index.F 3/1/02 9:43 AM Page 613 Index ✦ Z disadvantages, 456 distribution, 489–490 Edit interface, 475–478 FAQManager object, 483–484 FAQManager ZClass, 478–479 multiple-select property, 471–473 object changes, cataloging, 487 object-oriented programming, 455 product, creating, 457–459 Properties view, 469–470 property, adding to property sheet, 468 Property Sheets tab, 465–467 QandA ZClass, 479–483 select property, 471–473 subclassing, 487–489 through-the-Web, 456 View interface, 473–474 zdaemon, read-only mode, 27 Z_DEBUG_MODE, 25 ZEO See Zope Enterprise Objects prefix, Python octal format, 129 ZeroDivisionError, Python built-in function, 443 0x prefix, Python hex format, 129 zexp extension, 45–46 ZGadflyDA, Product list, 63 ZipCode attribute, Entry class, 205 zLOG, STDERR, 27 ZMI See Zope Management Interface ZODB See Z Object DataBase /Zope, 14 Zope 2.5 files on CD, 569 Zope API, Zope Management page, 67 Zope Bible, electronic version, 569 Zope Corporation, 3, Zope Database Adaptor, 344–345 Zope Enterprise Objects (ZEO) clusters, 565–566 component relationship diagram, importance of, 7, 11 installing, 563–564 running, 564–565 Zope External Method object, 450 Zope Factory option, 457 Zope installation files, 14 Zope LDAP Connection Product, 29 Zope Management Interface (ZMI), 215 Zope Page Templates combining with client side tool, separating presentation from logic, Zope Permission option, 457 Zope Quick Start, link to management interface, 21, 33 Zope Relational Database management (ZRDBM) abstract interface layer, 11 component relationship diagram, Zope version, displaying, 58 Zope-2.5.0-linux2-x86.tgz, 14 Zope-2.5.0-solaris-2.6-sparc.tgz, 14 Zope-2.5.0-src.tgz, 14 Zope-2.5.0-win32-x86.exe, 14 zope.org, 14 Zoperl, 453 ZopeTutorial, Product list, 63 zpasswd.py, 17–18, 371–372 ZPublisher component relationship diagram, convenience variable, 421 escape sequence, converting to character equivalent, 414 house keeping functions, marshaling arguments, 413–414 Object Request Broker, object-publishig environment, overview, publishing objects, 180–181 REQUEST object, 419–423 RESPONSE object, 423–425 traversal, 412–413 type casting arguments, 415–419 ZServer changing port number, 20 command line switches, 25–27 component relationship diagram, console output, startup, 24 FTP server, 24 HTTP server, 24 log file, 27 protocol translation, 9, 23 read-only mode, 27 secure monitor service, 24 STDOUT, 27 ZSQL methods, ZCatalog subtransactions, 515 ZSQLMethods external data source, 67 Product list, 63 613 k4857-3 Index.F 3/1/02 9:43 AM Page 614 k4857-3 Index.F 3/1/02 9:43 AM Page 615 l4857-3 EULA.F 3/1/02 9:43 AM Page 616 Hungry Minds, Inc End-User License Agreement READ THIS You should carefully read these terms and conditions before opening the software packet(s) included with this book (“Book”) This is a license agreement (“Agreement”) between you and Hungry Minds, Inc (“HMI”) By opening the accompanying software packet(s), you acknowledge that you have read and accept the following terms and conditions If you not agree and not want to be bound by such terms and conditions, promptly return the Book and the unopened software packet(s) to the place you obtained them for a full refund License Grant HMI grants to you (either an individual or entity) a nonexclusive license to use one copy of the enclosed software program(s) (collectively, the “Software”) solely for your own personal or business purposes on a single computer (whether a standard computer or a workstation component of a multi-user network) The Software is in use on a computer when it is loaded into temporary memory (RAM) or installed into permanent memory (hard disk, CD-ROM, or other storage device) HMI reserves all rights not expressly granted herein Ownership HMI is the owner of all right, title, and interest, including copyright, in and to the compilation of the Software recorded on the disk(s) or CD-ROM (“Software Media”) Copyright to the individual programs recorded on the Software Media is owned by the author or other authorized copyright owner of each program Ownership of the Software and all proprietary rights relating thereto remain with HMI and its licensers Restrictions On Use and Transfer (a) You may only (i) make one copy of the Software for backup or archival purposes, or (ii) transfer the Software to a single hard disk, provided that you keep the original for backup or archival purposes You may not (i) rent or lease the Software, (ii) copy or reproduce the Software through a LAN or other network system or through any computer subscriber system or bulletin-board system, or (iii) modify, adapt, or create derivative works based on the Software (b) You may not reverse engineer, decompile, or disassemble the Software You may transfer the Software and user documentation on a permanent basis, provided that the transferee agrees to accept the terms and conditions of this Agreement and you retain no copies If the Software is an update or has been updated, any transfer must include the most recent update and all prior versions Restrictions on Use of Individual Programs You must follow the individual requirements and restrictions detailed for each individual program in Appendix A of this Book These limitations are also contained in the individual license agreements recorded on the Software Media These limitations may include a requirement that after using the program for a specified period of time, the user must pay a registration fee or discontinue use By opening the Software packet(s), you will be agreeing to abide by the licenses and restrictions for these individual programs that are detailed in Appendix A and on the Software Media None of the material on this Software Media or listed in this Book may ever be redistributed, in original or modified form, for commercial purposes l4857-3 EULA.F 3/1/02 9:43 AM Page 617 Limited Warranty (a) HMI warrants that the Software and Software Media are free from defects in materials and workmanship under normal use for a period of sixty (60) days from the date of purchase of this Book If HMI receives notification within the warranty period of defects in materials or workmanship, HMI will replace the defective Software Media (b) HMI AND THE AUTHOR OF THE BOOK DISCLAIM ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE SOFTWARE, THE PROGRAMS, THE SOURCE CODE CONTAINED THEREIN, AND/OR THE TECHNIQUES DESCRIBED IN THIS BOOK HMI DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE SOFTWARE WILL BE ERROR FREE (c) This limited warranty gives you specific legal rights, and you may have other rights that vary from jurisdiction to jurisdiction Remedies (a) HMI’s entire liability and your exclusive remedy for defects in materials and workmanship shall be limited to replacement of the Software Media, which may be returned to HMI with a copy of your receipt at the following address: Software Media Fulfillment Department, Attn.: Zope Bible, Hungry Minds, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, or call 1-800-762-2974 Please allow four to six weeks for delivery This Limited Warranty is void if failure of the Software Media has resulted from accident, abuse, or misapplication Any replacement Software Media will be warranted for the remainder of the original warranty period or thirty (30) days, whichever is longer (b) In no event shall HMI or the author be liable for any damages whatsoever (including without limitation damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising from the use of or inability to use the Book or the Software, even if HMI has been advised of the possibility of such damages (c) Because some jurisdictions not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation or exclusion may not apply to you U.S Government Restricted Rights Use, duplication, or disclosure of the Software for or on behalf of the United States of America, its agencies and/or instrumentalities (the “U.S Government”) is subject to restrictions as stated in paragraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause of DFARS 252.227-7013, or subparagraphs (c) (1) and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, and in similar clauses in the NASA FAR supplement, as applicable General This Agreement constitutes the entire understanding of the parties and revokes and supersedes all prior agreements, oral or written, between them and may not be modified or amended except in a writing signed by both parties hereto that specifically refers to this Agreement This Agreement shall take precedence over any other documents that may be in conflict herewith If any one or more provisions contained in this Agreement are held by any court or tribunal to be invalid, illegal, or otherwise unenforceable, each and every other provision shall remain in full force and effect l4857-3 EULA.F 3/1/02 9:43 AM Page 618 Zope Public License (ZPL) Version 2.0 This software is Copyright © Zope Corporation™ and Contributors All rights reserved This license has been certified as open source It has also been designated as GPL compatible by the Free Software Foundation (FSF) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions in source code must retain the above copyright notice, this list of conditions, and the following disclaimer Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution The name Zope Corporation™ must not be used to endorse or promote products derived from this software without prior written permission from Zope Corporation The right to distribute this software or to use it for any purpose does not give you the right to use Servicemarks (sm) or Trademarks™ of Zope Corporation Use of them is covered in a separate agreement (see http://www.zope.com/Marks) If any files are modified, you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change Disclaimer THIS SOFTWARE IS PROVIDED BY ZOPE CORPORATION “AS IS’’ AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL ZOPE CORPORATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE This software consists of contributions made by Zope Corporation and many individuals on behalf of Zope Corporation Specific attributions are listed in the accompanying credits file ... Started with Zope Chapter 1: Overview of Zope What Is Zope? History of Zope Features of Zope ... 3/1/02 9:36 AM Page xx Zope Bible Chapter 2: Installation 13 What You Need to Run Zope Where to Find Zope Installing Zope Under Windows... Chapter 20: Alternative Methods of Running Zope 557 Interfacing Zope with Other Web Servers Zope and Apache Zope and Microsoft IIS Zope and Scalability What

Ngày đăng: 23/05/2018, 15:24

Mục lục

  • Zope™ Bible

    • Front Matter

      • Preface

        • Why We Wrote This Book

        • What You Need

        • DTML, Python, and ZPT Code Conventions

        • What the Icons Mean

        • How This Book Is Organized

          • Part I: Getting Started with Zope

          • Part II: Building Zope Products

          • Part III: Zope Management

          • Part IV: Advanced Zope Concepts

          • Appendixes

          • Web Site

          • Acknowledgments

          • Contents at a Glance

          • Contents

          • Getting Started with Zope

            • Overview of Zope

              • What Is Zope?

              • History of Zope

              • Features of Zope

                • Platforms

                • Database adapters

                • Web- based user interface

                • Integration with existing tools

                • Open source

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan