mother-webapps-framework 0.1.0
Mother - Web Applications Framework
Mother is a framework written in python and based on twisted. It is designed to make developpement of web applications easy and fast.
- It provides following functionalities among others:
- simple url mapping to code,
- handle multi content-types (html, JSON, ...),
- integration with Tentacles ORM,
- allow use of templating tools (currently, only Mako is supported)
Example:
UUID = '7c772000-8f12-4594-9730-9e4de53d55d1'
from mother import routing
from mother.callable import callback, Callable
from mother.template import Static, Template
@callback(url=routing.ROOT)
def root(**kwargs):
return """
<html>
<head>
<title>Welcome to Mother Sample Application</title>
</head>
<body>
This is the homepage of <b>Mother Sample Application</b>.<br/>
<br>
<em>You are welcome to watch my source code to see how to build your first
<strong>Mother</strong> application</em>.
</body>
</html>
"""
@callback(url='/foo', content_type='text/plain')
def foo(**kwargs):
return 'foo:: plain text'
@callback(url='/foo', content_type='application/json')
def foo(**kwargs):
return ['foo', 'json tree']
@callback(url='/foo', content_type='text/html')
def foo(**kwargs):
return '<html><body><b>foo</b>:: html content</body></html>'
@callback
def bar(age, **args):
try:
age = int(age)
except:
return routing.HTTP_404('age MUST be integer')
return 'the captain is %d years old' % age
class Captain(Callable):
def __init__(self, **kwargs):
super(Captain, self).__init__(**kwargs)
self._age = 54
# special methods GET, POST, PUT, DELETE are directly mapped to '/sample/captain' url
def GET(self, **kwargs):
return 'Captain::GET'
# You can also expose non-special class/instance methods with the callback modified
# Here we learn a new @callback option, named 'method'
#
@callback
def age(self, **kwargs):
return self._age
# Here we discover a new @callback argument, named 'method'
# taking either a string among 'GET', 'POST','PUT','DELETE' or a list of these
#
# This argument set HTTP method(s) callback is accessible through (default is GET)
@callback(url='/setage', method='POST')
def age_post(self, age, **kwargs):
try:
self._age = int(age)
except:
return routing.HTTP_404('age MUST be integer')
return routing.HTTP_200('')
@callback
def hello(**kwargs):
return 'hello'
URLS = {
# expose function
'/hel-lo' : hello,
# expose static content (directory)
'/static' : Static('static-content/'),
# expose template file
# NOTES
# . template files MUST be stored in a templates/ sub-directory
# . Mako is the only available template engine at present
'/template' : Template('sample.html', title='template sample title',
content="""You\'re viewing a template sample page, rendered with <em>Mako</em>""")
}
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| mother-webapps-framework-0.1.0.tar.gz (md5) | Source | 2011-06-20 | 41KB | 268 | |
- Author: Guillaume Bour
- Home Page: http://devedge.bour.cc/wiki/Mother/
- License: GNU Affero General Public License v3
- Requires TwistedCore (>=10.1), TwistedWeb (>= 10.1), SimpleParse (>= 2.1.0), Mako (>= 0.4.0), python_cjson, odict, tentacles
-
Categories
- Development Status :: 3 - Alpha
- Environment :: Console
- Environment :: No Input/Output (Daemon)
- Environment :: Web Environment
- Intended Audience :: Developers
- License :: OSI Approved :: GNU Affero General Public License v3
- Natural Language :: English
- Natural Language :: French
- Operating System :: OS Independent
- Programming Language :: Python
- Programming Language :: Python :: 2.5
- Programming Language :: Python :: 2.6
- Programming Language :: Python :: 2.7
- Topic :: Internet
- Topic :: Internet :: WWW/HTTP :: Dynamic Content
- Topic :: Internet :: WWW/HTTP :: HTTP Servers
- Topic :: Internet :: WWW/HTTP :: Site Management
- Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
- Topic :: Software Development
- Topic :: Software Development :: Libraries :: Application Frameworks
- Topic :: Software Development :: User Interfaces
- Package Index Owner: gbour
- DOAP record: mother-webapps-framework-0.1.0.xml
