Flask CRUD Routes to create simple consistent routes.
A very simple example of how to generate routes by using a standard class definition template.
from flask import Flask
app = Flask(__name__)
from flask_crud_routes.router import Router
from app_testplans import AppTestplans
from app_testcases import AppTestcases
with Router(app, AppTestplans):
with Router(app,AppTestcases):
pass
Route | Verbs | Endpoint |
---|---|---|
/testplans | HEAD, GET | AppTestplans.index |
/testplans | POST | AppTestplans.create |
/testplans/<testplan_id> | HEAD, GET | AppTestplans.show |
/testplans/<testplan_id> | PUT, PATCH | AppTestplans.update |
/testplans/<testplan_id> | DELETE | AppTestplans.delete |
/testplans/custom | POST | AppTestplans.custom |
/testplans/<testplan_id>/testcases | HEAD, GET | AppTestcases.index |
/testplans/<testplan_id>/testcases | POST | AppTestcases.create |
/testplans/<testplan_id>/testcases/<testcase_id> | HEAD, GET | AppTestcases.show |
/testplans/<testplan_id>/testcases/<testcase_id> | PUT, PATCH | AppTestcases.update |
/testplans/<testplan_id>/testcases/<testcase_id> | DELETE | AppTestcases.delete |
All the controller definitions are inside a python class derived from Router.Controller The method names are to be followed as above and the routes are automatically created.
class AppTestplans(Router.Controller):
def update(self, testplan_id):
return "AppTestplans::update::{id}".format(id=id)
def show(self, testplan_id):
return "AppTestplans::show::{id}".format(id=testplan_id)
# Define a custom route
@Router.route(methods=["POST"])
def custom(self, id):
return "AppTestplans::custom"
class AppTestcases(Router.Controller):
def index(self, **kwargs):
return "AppTestcases::index::{kwargs}".format(kwargs=kwargs)
def show(self, **kwargs):
return "AppTestcases::show::{id}::{kwargs}".format(id=kwargs.get('testcase_id'),kwargs=kwargs)