Skip to main content

URL routing made right

Project description

Just a small example:

from routr import route, GET, POST
from routr.schema import form, String

routes = route("/users",
  route(POST, "/",          "views.create_user", guards=[form(username=String)]),
  route(GET,  "/{id:int}",  "views.get_user"))

Docs are hosted at excellent readthedocs project.

0.1.5

  • introduced RequestParams.exception_factory which abstracts away HTTPBadRequest raise in case of invalid data being supplied

  • [bugfix] RouteGuarded.response now installed correctly, previously it sometimes contained NoUrlMatched objects which are not responses

0.1.4

  • RequestParams.post_processor now also can be accumulated via addition

  • fix bug in RequestParams which prevented Option wrap SchemaNode objects directly

0.1.3

  • fix broken 0.1.2 release by including CHANGES file in dist

0.1.2

  • trace factory made configurable via Configuration.trace attribute

  • method and PATH_INFO extraction delegated to configuration, allows implementing routing for other request wrapper (werkzeug or django’s request for example)

  • routes now have access to configuration object via cfg attribute

0.1.1

  • allow guards return None (routing doesn’t break on this and proceed with old trace)

  • RequestParams now can accept colander.SchemaNode directly (allows to supply validators)

0.1

  • initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

routr-0.1.5.tar.gz (12.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page