in shelvepickle fileor other python-based mediumthe scripts that process it are simply run automatically on server in response to requests from web browsers and other clientsand they produce html to interact with usereither directly or by interfacing with framework apis rich internet application (riasystems such as silverlight and pyjamas also attempt to combine gui-like interactivity with web-based deployment web services although web clients can often parse information in the replies from websites ( technique colorfully known as "screen scraping")we might go further and provide more direct way to fetch records on the web via web services interface such as soap or xml-rpc calls--apis supported by either python itself or the third-party open source domainwhich generally map data to and from xml format for transmission to python scriptssuch apis return data more directly than text embedded in the html of reply page databases if our database becomes higher-volume or criticalwe might eventually move it from shelves to more full-featured storage mechanism such as the open source zodb object-oriented database system (oodb)or more traditional sql-based relational database system such as mysqloracleor postgresql python itself comes with the in-process sqlite database system built-inbut other open source options are freely available on the web zodbfor exampleis similar to python' shelve but addresses many of its limitationsbetter supporting larger databasesconcurrent updatestransaction processingand automatic write-through on inmemory changes (shelves can cache objects and flush to disk at close time with their writeback optionbut this has limitationssee other resourcessql-based systems like mysql offer enterprise-level tools for database storage and may be directly used from python script as we saw in mongodb offers an alternative approach that stores json documentswhich closely parallel python dictionaries and listsand are language neutralunlike pickle data orms if we do migrate to relational database system for storagewe don' have to sacrifice python' oop tools object-relational mappers (ormslike sqlobject and sqlalchemy can automatically map relational tables and rows to and from python classes and instancessuch that we can process the stored data using normal python class syntax this approach provides an alternative to oodbs like shelve and zodb and leverages the power of both relational databases and python' class model while hope this introduction whets your appetite for future explorationall of these topics are of course far beyond the scope of this tutorial and this book at large if you want to explore any of them on your ownsee the webpython' standard library manualsand application-focused books such as programming python in the latter more realistic example