A Sinatra-inspired web framework for Python
Project description
Hoboken
=======
[![Build Status](https://secure.travis-ci.org/andrew-d/Hoboken.png?branch=master)](http://travis-ci.org/andrew-d/Hoboken)
Hoboken is a Sinatra-like web framework for Python. It attempts to make writing simple web applications both easy, but also provide enough power to accomplish more complex things. Hoboken officially supports Python 2.6, 2.7, and 3.2 (as these are the platforms on which WebOb is supported). Unofficially, the tests pass on Python 3.0 (but *not* 3.1).
Currently, Hoboken is in alpha. There are plenty of tests (actually, test coverage is 100%), but documentation is somewhat lacking. That said, here's a simple "hello world" application:
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.get("/")
def index():
return 'Hello world!'
And here's another application that demonstrates a few more of Hoboken's capabilities:
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.get("/greet/:name")
def greeting(name=None):
app.response.json_body = {
"greeting": "Hello {0}!".format(name)
}
You can then host this using any WSGI server (since Hoboken applications are WSGI applications). There's also a built-in test server, so if we use this to test our application: `app.test_server(port=8080)`, we can do this:
$ curl -ik http://localhost:8080/greet/John
HTTP/1.0 200 OK
Date: Thu, 19 Jul 2012 00:00:00 GMT
Server: WSGIServer/0.1 Python/2.7.3
Content-Type: text/html; charset=UTF-8
Content-Length: 26
{"greeting":"Hello John!"}
Finally, here's a longer example:
from __future__ import print_function
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.before("/admin/*")
def authenticate(path):
# This runs before the actual route. TODO: Do some authentication.
pass
@app.get("/")
def index():
return "Welcome to the app!"
@app.get("/books/:author/*")
def get_book(title, author=None):
return "Looking for book '{0}' by '{1}'".format(title, author)
@app.post("/books/:author")
def add_book(author=None):
return "Added book for '{0}'".format(author)
And there you go! Some simple demonstrations of how Hoboken works.
Miscellanea
-----------
Hoboken is licensed under the Apache license, and is created and developed by Andrew Dunham.
=======
[![Build Status](https://secure.travis-ci.org/andrew-d/Hoboken.png?branch=master)](http://travis-ci.org/andrew-d/Hoboken)
Hoboken is a Sinatra-like web framework for Python. It attempts to make writing simple web applications both easy, but also provide enough power to accomplish more complex things. Hoboken officially supports Python 2.6, 2.7, and 3.2 (as these are the platforms on which WebOb is supported). Unofficially, the tests pass on Python 3.0 (but *not* 3.1).
Currently, Hoboken is in alpha. There are plenty of tests (actually, test coverage is 100%), but documentation is somewhat lacking. That said, here's a simple "hello world" application:
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.get("/")
def index():
return 'Hello world!'
And here's another application that demonstrates a few more of Hoboken's capabilities:
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.get("/greet/:name")
def greeting(name=None):
app.response.json_body = {
"greeting": "Hello {0}!".format(name)
}
You can then host this using any WSGI server (since Hoboken applications are WSGI applications). There's also a built-in test server, so if we use this to test our application: `app.test_server(port=8080)`, we can do this:
$ curl -ik http://localhost:8080/greet/John
HTTP/1.0 200 OK
Date: Thu, 19 Jul 2012 00:00:00 GMT
Server: WSGIServer/0.1 Python/2.7.3
Content-Type: text/html; charset=UTF-8
Content-Length: 26
{"greeting":"Hello John!"}
Finally, here's a longer example:
from __future__ import print_function
from hoboken import HobokenApplication
app = HobokenApplication(__name__)
@app.before("/admin/*")
def authenticate(path):
# This runs before the actual route. TODO: Do some authentication.
pass
@app.get("/")
def index():
return "Welcome to the app!"
@app.get("/books/:author/*")
def get_book(title, author=None):
return "Looking for book '{0}' by '{1}'".format(title, author)
@app.post("/books/:author")
def add_book(author=None):
return "Added book for '{0}'".format(author)
And there you go! Some simple demonstrations of how Hoboken works.
Miscellanea
-----------
Hoboken is licensed under the Apache license, and is created and developed by Andrew Dunham.
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
Hoboken-0.5.1.tar.gz
(30.1 kB
view details)
File details
Details for the file Hoboken-0.5.1.tar.gz
.
File metadata
- Download URL: Hoboken-0.5.1.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 325b372b9c9195a2e654b90e668a7e57930b995bf3ed129877f56ab5f3ac1321 |
|
MD5 | 49ace6668b9aa16a5c5aad9e470380f5 |
|
BLAKE2b-256 | 9372238fde24c0c654579ec442f239a251be675dde9a9fb52db8167ee817c55c |