![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
HTTP Router ###########
.. _description:
http-router -- A simple router for HTTP applications
The library is not a HTTP framework. It's an utilite to build the frameworks. The main goal of the library to bind targets to http routes and match them.
.. _badges:
.. image:: https://github.com/klen/http-router/workflows/tests/badge.svg :target: https://github.com/klen/http-router/actions :alt: Tests Status
.. image:: https://img.shields.io/pypi/v/http-router :target: https://pypi.org/project/http-router/ :alt: PYPI Version
.. image:: https://img.shields.io/pypi/pyversions/http-router :target: https://pypi.org/project/http-router/ :alt: Python Versions
.. _contents:
.. contents::
.. _requirements:
.. _installation:
http-router should be installed using pip: ::
pip install http-router
Create a router:
.. code:: python
from http_router import Router
# Initialize the router
router = Router(trim_last_slash=True)
Define routes:
.. code:: python
@router.route('/simple')
def simple():
return 'result from the fn'
Call the router with HTTP path and optionally method to get a match result.
.. code:: python
match = router('/simple', method='GET') assert match, 'HTTP path is ok' assert match.target is simple
The router supports regex objects too:
.. code:: python
import re
@router.route(re.compile(r'/regexp/\w{3}-\d{2}/?'))
def regex():
return 'result from the fn'
But the lib has a simplier interface for the dynamic routes:
.. code:: python
@router.route('/users/{username}')
def users():
return 'result from the fn'
By default this will capture characters up to the end of the path or the next
/
.
Optionally, you can use a converter to specify the type of the argument like
{variable_name:converter}
.
Converter types:
========= ====================================
str
(default) accepts any text without a slash
int
accepts positive integers
float
accepts positive floating point values
path
like string but also accepts slashes
uuid
accepts UUID strings
========= ====================================
Convertors are used by prefixing them with a colon, like so:
.. code:: python
@router.route('/orders/{order_id:int}')
def orders():
return 'result from the fn'
Any unknown convertor will be parsed as a regex:
.. code:: python
@router.route('/orders/{order_id:\d{3}}')
def orders():
return 'result from the fn'
Multiple paths are supported as well:
.. code:: python
@router.route('/', '/home')
def index():
return 'index'
Handling HTTP methods:
.. code:: python
@router.route('/only-post', methods=['POST'])
def only_post():
return 'only-post'
Submounting routes:
.. code:: python
subrouter = Router()
@subrouter.route('/items/{item}') def items(): pass
router = Router()
router.route('/api')(subrouter)
match = router('/api/items/12', method='GET') assert match, 'HTTP path is ok' assert match.target is items assert match.params == {"item": "12"}
.. _bugtracker:
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/http-router/issues
.. _contributing:
Development of the project happens at: https://github.com/klen/http-router
.. _license:
Licensed under a MIT license
_.
.. _links:
.. _klen: https://github.com/klen .. _MIT license: http://opensource.org/licenses/MIT
FAQs
A simple router system for HTTP applications
We found that http-router demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.