1
我有一個CherryPy的應用程序是這樣的:如何在同一個cherrypy應用程序中使用多個調度程序?
import cherrypy
from controllers import UsersController
class Root(object):
exposed = True
def index(self):
return 'welcome'
if __name__ == '__main__':
root = Root()
root.users = UsersController()
cherrypy.tree.mount(
root,
'/',
{
'/users' : {'request.dispatch' : cherrypy.dispatch.MethodDispatcher()}
}
)
cherrypy.engine.start()
cherrypy.engine.block()
現在我希望用MethodDispatcher()用於提供REST的API /用戶資源,我想爲「/」的路徑默認調度(其中以根通話.index()是預期的)。而不是寫自己的RoutesDispatcher()有沒有辦法實現這一點? (例如,對於'/ users'使用MethodDispatcher(),如'/'使用DefaultDispatcher())?順便說一句,我得到的錯誤是'Root' object is not callable
。
謝謝。有效。但是我有一個疑問,'exposed = True'暴露了類,包括index(),對嗎?那麼爲什麼默認調度員不能像那樣工作?我錯過了非常基本的東西嗎? – Sangram
明白了。在類級別上設置的= exposed = True是爲了調用特殊的方法(比如__call __())。爲了暴露一個對象,需要暴露它的index()方法。現在有些清楚,但不完全。 – Sangram