Django is awesome, but starting a new project in it is a pain. importd is inspired from ruby's sinatra. Hello world django project:
from importd import d
d(DEBUG=True)
@d("/")
def idx(request):
return "index.html"
@d("/post/<int:post_id">/")
def post(request, post_id):
return "post.html", {"post_id": post_id}
To run it:
$ python foo.py
This will start the debug server.
To run it in production:
$ gunicorn foo:d
An example app: https://github.com/amitu/importd/blob/master/foo.py
- fully compatible with django
- supports smarturls
- most of regularly used django functions and classes available in d. namespace, eg d.HttpResponse, d.render_to_response, d.get_object_or_404 etc
- automatically maps "templates" folder in foo.py directory to serve templates
- automatically maps "static" folder in foo.py to serve static content
- management commands still available: $ python foo.py shell
- wsgi compliant
- gunicorn support
- works seamlessly with fhurl (http://packages.python.org/fhurl/)
$ easy_install importd
docs: http://amitu.com/importd/
- figure our whats going on with double imports
- figure out whats going on when gunicorn exits