Deploying a Web.py application with WSGI, several servers
Here is an example of two hosted apps using cherrypy wsgi server:


#!/usr/bin/python
from web import wsgiserver
import web

# webpy wsgi app
urls = (
  '/test.*', 'index'
)

class index:
    def GET(self):
        web.header("content-type", "text/html")
        return "Hello, world1!"

application = web.application(urls, globals(), autoreload=False).wsgifunc() 


# generic wsgi app
def my_blog_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['Hello world! - blog\n']


"""
# single hosted app
server = wsgiserver.CherryPyWSGIServer(
            ('0.0.0.0', 8070), application,
            server_name='www.cherrypy.example')

"""

# multiple hosted apps with WSGIPathInfoDispatcher
d = wsgiserver.WSGIPathInfoDispatcher({'/test': application, '/blog': my_blog_app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8070), d)            
server.start()
I've created a web.py application, and now that it is ready to be deployed, I want to run in not on web.py's built-in webserver. I want to be able to run it on different webservers, Apache or IIS, without having to change my application code. This is where WSGI is supposed to come in, if I understand it correctly.
However, I don't understand what exacly I have to do to make my application deployable on a WSGI server? Most examples assume you are using Pylons/Django/other-framework, on which you simply run some magic command which fixes everything for you.
From what I understand of the (quite brief) web.py documentation, instead of running web.application(...).run(), I should use web.application(...).wsgifunc(). And then what?