CherryPy:为一个处理程序关闭工具
CherryPy: Turn off tool for one handler
我有一个 class 有几条路线,我希望他们都使用 json 工具 除了一条 。如何从工具中排除特定路线(下例中的 foo
)?
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True,
'/foo': {
'tools.json_out.on': True,
'tools.json_in.on': True
}
}
@cherrypy.expose()
def index(self):
return "Hello World!"
@cherrypy.expose()
def foo(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
您可以使用 cherrypy.config
装饰器来做到这一点:
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True
}
@cherrypy.expose
def index(self):
return "Hello World!"
@cherrypy.expose
@cherrypy.config(**{'tools.json_in.on': False, 'tools.json_out.on': False})
def foo(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
@cyraxjoe 的回答的另一种但等效的方法是
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True
}
@cherrypy.expose
def index(self):
return "Hello World!"
@cherrypy.expose
@cherrypy.config(**{'tools.json_in.on': False, 'tools.json_out.on': False})
def foo(self):
return "Hello World!"
foo._cp_config = {
'tools.json_out.on': False,
'tools.json_in.on': False,
}
cherrypy.quickstart(HelloWorld())
我有一个 class 有几条路线,我希望他们都使用 json 工具 除了一条 。如何从工具中排除特定路线(下例中的 foo
)?
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True,
'/foo': {
'tools.json_out.on': True,
'tools.json_in.on': True
}
}
@cherrypy.expose()
def index(self):
return "Hello World!"
@cherrypy.expose()
def foo(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
您可以使用 cherrypy.config
装饰器来做到这一点:
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True
}
@cherrypy.expose
def index(self):
return "Hello World!"
@cherrypy.expose
@cherrypy.config(**{'tools.json_in.on': False, 'tools.json_out.on': False})
def foo(self):
return "Hello World!"
cherrypy.quickstart(HelloWorld())
@cyraxjoe 的回答的另一种但等效的方法是
import cherrypy
class HelloWorld(object):
_cp_config = {
'tools.json_out.on': True,
'tools.json_in.on': True
}
@cherrypy.expose
def index(self):
return "Hello World!"
@cherrypy.expose
@cherrypy.config(**{'tools.json_in.on': False, 'tools.json_out.on': False})
def foo(self):
return "Hello World!"
foo._cp_config = {
'tools.json_out.on': False,
'tools.json_in.on': False,
}
cherrypy.quickstart(HelloWorld())