Python的瓶子:如何使用瓶子作为属性

时间:2017-04-19 16:20:15

标签: python api bottle

我想使用Bottle for Python 3.6设计一个API,但是我没有看到如何将路由绑定到具有瓶子属性的函数,因为不允许使用@self.bottle.route...装饰器。 我所拥有的是:

from bottle import Bottle, request
class API_v1:
    def __init__(self, repository):
        self.bottle = Bottle()
        self.repository = repository

        @self.bottle.error(400)
        def error400(error):
            return error.body

        @self.bottle.error(500)
        def error500(error):
            return f'Technical exception : {error.body}'

        @self.bottle.put('/job')
        def job():
            #do stuff with repository
            return ''

(注意所有函数都在__init__内初始化,这很糟糕)

我想要的是:

from bottle import Bottle, request
class API_v1:
    def __init__(self, repository):
        self.bottle = Bottle()
        self.repository = repository

    @self.bottle.error(400)
    def error400(self, error):
        return error.body

    @self.bottle.error(500)
    def error500(self, error):
        return f'Technical exception : {error.body}'

    @self.bottle.put('/job')
    def job(self):
        #do stuff with repository
        return ''

最好的pythonic方法是什么?

0 个答案:

没有答案