Metadata-Version: 1.0
Name: Bivouac
Version: 0.1.1
Summary: a light-weight, wsgi-compliant web framework in Python
Home-page: http://pypi.python.org/pypi/bivouac
Author: Adam A.G. Shamblin
Author-email: adam.shamblin@gmail.com
License: MIT
Description: ====================================================================
        bivouac - a light-weight, wsgi-compliant MVC web framework in Python
        ====================================================================
        
        Why bivouac?
        ------------
        
        bivouac has grown out of my own efforts to build websites in Python with as thin a footprint as I can.  bivouac provides a basic MVC framework inspired by Microsoft's MVC 1.0 framework.  Expect further ruminations on the topic elsewhere.  In the past I suggested I would not support this project, but as I find I rely on bivouac for more of my own websites, I expect to do as much as I can to encourage adoption and support. I think we're on to something good here!
        
        What is bivouac?
        ----------------
        
        bivouac is WSGI compliant and aims to be as webserver-agnostic as it can.  Using mod_wsgi or isapi_wsgi, bivouac works well with both Apache and IIS, with NGINX being an untested likelihood.  Today bivouac supports authentication and user sessions using MongoDB.  Long-term look for this to become more database independent.
        
        Currently, bivouac has a small number of dependencies:
        
        * mod_wsgi or isapi_wsgi
        * Paste & Webob
        * mongodb
        * PyMongo
        
        Basic Usage
        -----------
        
        bivouac provides classes for MVC routing, controllers, models and views.  Here's a quick intro to getting a site up and running using bivouac.
        
        For starters, create a module called app.py, or whatever you've specified as your WSGI entry point.  Here we see a simple WSGI entry point with some boiler-plate routing.  This will serve most folks needs, so feel free to start with this setup.
            
        ::
        
            import bivouac
        
            application = bivouac.Router()
            application.add_route('/', defaults={'controller': 'default', 'action': 'index'})
            application.add_route('/{controller}/', defaults={'action': 'index'})
            application.add_route('/{controller}/{action}')
            application.add_route('/{controller}/{action}/{id}')
        
        Next you'll need a controller.  bivouac looks for controllers within your site directory, typically in the controllers package.  Your controller will inherit from bivouac.Controller.  Methods decorated with @action will be treated as controller actions and return bivouac views, or any WSGI compliant, iterable structure.
        
        ::
        
            import bivouac
            from bivouac.controller import action, noauth
        
            controller = "DefaultController"
        
            class DefaultController(bivouac.Controller):
        
                '''Default Controller.
                '''
        
                def __init__(self):
        
                    bivouac.Controller.__init__(self)
        
        
                @noauth
                @action
                def index(self, req, **vars):
        
                    import views.index as View
        
                    view = View.IndexView()
                    return view
        
        
Keywords: web mvc wsgi framework
Platform: UNKNOWN
