BottleRoutes

Plugin to use OO to create routes in bottle.


License
MIT
Install
pip install BottleRoutes==2020.8.20

Documentation

Plugin que implementa criação de rotas com orientação a objetos.

Este módulo não é exatamente um Plugin do bottle pois não é implementado como um, trata-se apenas de um "cheatzinho" que criei para simplificar um projeto meu. Para conferir como criar um plugin com bottle siga o link: https://bottlepy.org/docs/dev/plugindev.html

Plugin para micro-framework bottle para simplificar a criação de rotas utilizando Orientação a Objetos.

Para utilizar este plugin é necessário instalar o bottle. Pode ser o passo a passo da documentação: https://bottlepy.org/docs/0.12/tutorial.html#installation ou apenas com o comando abaixo:

pip install bottle

Depois pode instalar o plugin com o comando:

pip install BottleRoute

Esse plugin vai trazer o arquivo RouteExt para o seu site-package então você poderá utilizar da seguinte forma:

from bottle import Bottle
from RouteExt import set_controller_handler, Controllers


class TesteController(Controllers):
    url = "/"

    def get(self):
        return f"A url é: {self.url}"

app = set_controller_handler(Bottle)

app.register(obj=TesteController())

app.run()

Desta forma ele vai adicionar o método register a abstração do Bottle e vai poder ser invocado passando um objeto subclasse da classe Controller que implemente os verbos HTTP para URL. No exemplo acima são criados os verbos GET, POST, PUT e DELETE para a rota /, como não foi definido na classe TesteController() os métodos POST, PUT, DELETE, caso fossem requisitados retornáriam um erro informando Method not implemented.

Também é possível utilizar rotas dinamicas:

from bottle import Bottle
from RouteExt import set_controller_handler, Controllers


class TesteController(Controllers):
    url = "/<nome>"

    def get(self, nome):
        return f"O parametro na rota é:: {nome}"

app = set_controller_handler(Bottle)

app.register(obj=TesteController())

app.run()