Configuração de visualização tipo pirâmide no Django

Recentemente, iniciei um novo projeto que nos permite usar a configuração de visualização em formato de pirâmide no Django – https://github.com/avanov/Rhetoric

Se você já teve a chance de implementar um aplicativo da web baseado em pirâmide, deve ter notado como seu URL Dispatcher se torna flexível quando você precisa lidar com terminais RESTful . Agora com o Rhetoric, a mesma funcionalidade está disponível no Django.

O projeto ainda está em desenvolvimento inicial, mas já fornece uma sintaxe completa de correspondência de padrões e um despachante de URL baseado em método.

Exemplo:

# project_name.urls
from django.conf.urls import patterns, include, url
# ... other imports ...
from rhetoric import Configurator

# ... various definitions ...

urlpatterns
= patterns('',
# ... a number of standard django url definitions ...
)

# Rhetorical routing
# ------------------
config
= Configurator()
config
.add_route('test.new.routes', '/test/new/routes/{param:[a-z]+}')
config
.scan(ignore=[
# do not scan test modules included into the project tree
re
.compile('^.*[.]?tests[.]?.*$').match,
# do not scan settings modules
re
.compile('^settings[_]?[_a-z09]*$').match,
])
urlpatterns
.extend(config.django_urls())
# project_name.some_app.some_module

from rhetoric import view_config


@view_config(route_name="test.new.routes", renderer='json')
def view_get(request, param):
return {
'Hello': param
}

@view_config(route_name="test.new.routes", renderer='json', request_method='POST')
def view_post(request, param):
return {
'Hello': 'POST'
}