Django-style url handling for Flask
Project description
flask_url_mapping
Django-style url handling for Flask
Inspired by [https://stackoverflow.com/questions/31680048/django-styled-flask-url-pattern-for-large-application] this package is an attempt to generalize the concept of Django-like url-view / endpoint-mapping.
You can install it via
pip install flask-url-mapping
Centerpiece is an urls.py which contains the mapping.
urls = [
("/", views.index), #1
("/login", views.login, ["GET", "POST"]), #2
("/home", "home.urls") #3
("/admin", views.admin, ["GET"], "admin_role"), #4
]
There are four ways to map routes to endpoints
- route to endpoint, http method default is GET
- route to endpoint with array of http methods
- route to component see Components
- route to endpoint with array of http methods and required role
After declaring your url mapping You can register the urls to the flask app via register_urls
A sample setup without permissions
- wsgi.py
from flask import Flask
from flask_url_mapping import register_urls
from urls import urls
app = Flask(__name__)
if __name__ == '__main__':
flask_urls = FlaskUrls(app)
flask_urls.register_urls(urls)
app.run()
- urls.py
from views import *
urls = [
("/", hello_world, ["GET"])
]
- views.py
def hello_world():
return 'Hello World!'
A sample setup with permissions
When adding a role to a route endpoint mapping your project has to use flask_login
Components
A component is a subfolder which contains at least an urls.py and an views.py When this folder also contains a templates directory, it will be automatically added to the jinja2 search path for html templates
Travis-CI
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
Built Distribution
Hashes for flask_url_mapping-0.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f5a16b2a2333563117cbe99a3210b19167a69da1b013fed76b1ea6961a422f |
|
MD5 | 23c334d7d27b8cd0ac0fc091a631d5d2 |
|
BLAKE2b-256 | dd2098d98539466783af8ee41882819a43850653f9e8a65c5ebbf2d5a964fe2e |