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'
}