示例#1
0
#!/usr/local/bin/python
# Fig. 23.16: viewCart.py
# Generate XML representing cart, convert
# to required format using browser-specific XSLT
# style sheet and display results.

import sys
import Session
from xml.xslt import Processor
from xml.dom.DOMImplementation import implementation

# load Session
try:
   session = Session.Session()
except Session.SessionError, message:   # invalid/no session ID
   Session.redirect( "error.py?message=%s" % message )
   sys.exit()

cart = session.data[ "cart" ]
total = 0  # total for all ordered items

# generate XML representing cart object
document = implementation.createDocument( None, None, None )
cartNode = document.createElement( "cart" )
document.appendChild( cartNode )

# add XML representation for each cart item
for cartItem in cart.values():

   # get book data, calculate subtotal and total
   book = cartItem.item
示例#2
0
session = None  # Session not yet created

# attempt to create Session three times
for i in range( 3 ):

   # create new Session
   try:
      session = Session.Session( 1 )

   # ID already exists      
   except Session.IDError:                 
      time.sleep( 0.1 )  # wait 0.1 seconds -- try again

   # missing content type
   except Session.SessionError, message:   
      Session.redirect( "error.py?message=%s" % message )
      sys.exit()

   else:
      break  # Session created successfully

# if successful, save Session and re-direct to allBooks.py
if session: 
   nextPage = "allBooks.py?ID=%s" % session.data[ "ID" ]
   session.saveSession()
   Session.redirect( nextPage )
else:
   Session.redirect( "error.py?message=Unable+to+create+Session" )

########################################################################## 
# (C) Copyright 2002 by Deitel & Associates, Inc. and Prentice Hall.     #
示例#3
0
# Fig. 23.12: displayBook.py
# Retrieve one book's XML representation, convert
# to required format using browser-specific XSLT
# stylesheet and display results.

import cgi
import sys
import Session
from xml.xslt import Processor
from xml.dom.DOMImplementation import implementation

form = cgi.FieldStorage()

# ISBN has not been specified
if not form.has_key( "isbn" ):
   Session.redirect( "error.py?message=No+ISBN+given" )
   sys.exit()

# load Session
try:
   session = Session.Session()     
except Session.SessionError, message:  # invalid/no session ID 
   Session.redirect( "error.py?message=%s" % message )
   sys.exit()
      
titles = session.data[ "titles" ]   # get titles
session.data[ "bookToAdd" ] = None  # book has not been found

# locate Book object for selected book   
for book in titles: