如何在暴露函数中转换参数cherrypy?

时间:2015-09-25 02:51:46

标签: python cherrypy

例如,我有一个暴露的功能,如:

@cherrypy.expose
def create_purchase(self, price, amount, description):

    price = float(price)
    amount = int(amount)
    descript = str(description)

有没有办法自动将价格转换为浮动,数量为int,描述为str。如果其中任何一个失败,请认为是错误。

1 个答案:

答案 0 :(得分:0)

没有内置的解决方案,但是cherrypy的tools提供了一个足够的钩子。这是一个example hook called params。将使用这样的:

@cherrypy.expose
@params(price=float, amount=int, description=str)
def create_purchase(self, price, amount, description):

如果你有幸编写Python 3-only代码,函数注释将提供更优雅的解决方案。

更新:自版本6.2以来,这已内置。

@cherrypy.tools.params()
def create_purchase(self, price: float, amount: int, description):