Mother - Web Applications Framework
Project description
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>""") }
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for mother-webapps-framework-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bef5a88e61161a931d7ee2e90a00450b26f3b1a92ce0924754b60ffa584834b6 |
|
MD5 | ccc6cc256f2baff79a253d71a7fc8d5f |
|
BLAKE2b-256 | 4a3c09875a9549c688d9893725c4e0bc7c08bbe032cb1641a051f158ef486bfa |