【发布时间】:2019-05-29 21:16:02
【问题描述】:
我是cherryPy 的新手,我正在努力将GUI 与Python 函数进行通信,因为我使用的是CherryPy。我关注了this cherryPy tutorial。因为 POST 方法并没有做太多,只是返回一些字符串,但在我的情况下,可以有许多函数将使用 POST 与 GUI 进行通信。我试过这个:
@cherrypy.expose
class StringGeneratorWebService(object):
@cherrypy.tools.accept(media='text/plain')
def GET(self):
return cherrypy.session['mystring']
def POST(self, counter,param):
if counter == 1:
function1(param) # call a python function
elif counter == 2:
function2(param)
elif counter == 3:
function3(param)
def PUT(self, another_string):
cherrypy.session['mystring'] = another_string
def DELETE(self):
cherrypy.session.pop('mystring', None)
在上面的POST方法代码中,counter和Param是来自AJAX请求的参数。根据计数器值,我正在调用相应的函数。 Param 可以是一个大的 JSON 文档。上面的代码有效,但这是一种非常粗略的方法,那么还有其他一种好的编码习惯吗?
【问题讨论】:
-
如果您在谈论如何处理计数器值并调用不同的函数 w.r.t.也就是说,您需要通过一些您将获得的数据示例以及您想要实现的目标来分享这些功能是什么。
-
@HimanshuJain 我在问使用计数器调用不同的函数是否是一个好习惯?
-
不同的方法可以有不同的URL。
-
@webKnjaZ 所以不同的 URL 需要映射到不同的类,比如
class StringGeneratorWebService(object)在这种情况下? -
是的,如果您需要对对象使用不同的 HTTP 方法。另一种方式可能是遍历,这意味着类方法会自动按名称映射到 URL,但随后它们会接收所有 HTTP 方法。
标签: cherrypy