bin/wsgi-dev.py
author Tero Marttila <terom@fixme.fi>
Thu, 30 Dec 2010 23:44:10 +0200
changeset 22 c68ca09b08b9
parent 6 72c73df76db2
child 26 04bf578d358a
permissions -rwxr-xr-x
Add external javascript libraries under ext/
#!/usr/bin/env python
"""
    Simple test server/environment for WSGI development
"""

import werkzeug

# app import
import svv.wsgi
import svv.database
import svv.application

import optparse, logging


if __name__ == '__main__' :
    parser = optparse.OptionParser()
    parser.add_option('-q', '--quiet', action='store_true', help='More output')
    parser.add_option('-v', '--verbose', action='store_true', help='More output')

    parser.add_option('-p', '--port', type='int', help='Local port to run on', default=8080, metavar='PORT')
    parser.add_option('-B', '--bind', help="Local address to listen on", default='localhost', metavar='HOST')

    parser.add_option('-d', '--database', help="Database connection URI", metavar='URL')
    parser.add_option(      '--init-database', action='store_true', help="Initialize database (CREATE)")

    (options, args) = parser.parse_args()
    
    if options.quiet :
        level = logging.WARN

    elif options.verbose :
        level = logging.DEBUG

    else :
        # default
        level = logging.INFO

    bind = options.bind
    port = options.port

    assert not args

    logging.basicConfig(format="[%(levelname)5s] %(funcName)25s : %(message)s", level=level)

    # app state
    application = svv.application.Application(
            options.database,
    )

    # init?
    if options.init_database :
        application.create_tables()

    # frontend
    wsgiapp = svv.wsgi.WSGIApp(
            application
    )

    # run
    werkzeug.run_simple(bind, port, wsgiapp, use_reloader=True, use_debugger=True, 
            static_files    = {
                # static resources mounted off app /static
                '/static':  'static/',
            },
    )