building a web interface

Alice Bevan–McGregor alice at gothcandy.com
Thu Nov 25 03:36:49 EST 2010


Howdy!

I'm mildly biased, being the author of the framework, but I can highly 
recommend WebCore for rapid prototyping of web applications; it has 
templating via numerous template engines, excellent JSON (AJAJ) 
support, and support for database back-ends via SQLAlchemy.  It also 
has session support baked-in via a project called Beaker.  
Documentation is fairly complete, and I can be found camping in the 
#webcore IRC channel on irc.freenode.net at strange hours.

If you can write a class, you can have a fully operational web 
application in a single file of ~8 lines or so.  (Or you can create a 
complete easy-installable Python package with multiple modules.)

For information, see: http://www.web-core.org/

As an interactive-fiction example:

class RootController(web.core.Controller):
    def index(self):
        """This returns a template that uses JavaScript to call execute().
        The JavaScript adds the result of execute() to the display."""
        session = db.Session().save()
        return './templates/main.html', dict(session=session.id)

    def execute(self, session, statement):
        """Load our session and pass the input off to our interactive
        fiction library of choice.  Return the result if all went well."""
        session = db.Session.get(session)

        try:
            result = myiflib.execute(session, statement)

        except myiflib.ParseError:
            return 'json:', dict(status="failure", message="Error...")

        return 'json:', dict(status="success", message=result)

 — Alice.




More information about the Python-list mailing list