Python cherrypy家庭自动化项目:在单个web界面上显示信息

Python cherrypy家庭自动化项目:在单个web界面上显示信息,python,cherrypy,Python,Cherrypy,我参与了一个家庭自动化项目,该项目收集了许多模块(灯的控制、运动检测、视频流、门的打开检测…)。我所有的脚本都是用python编写的,我选择将web部件移植到cherrypy(真正的原因是我对PHP不太了解)。我想用cherrypy构建一个web界面,它将用作控制各个模块的仪表板。我可以从接口调用我的函数,但返回处理每次都在新生成的HTML页面上返回,而不是像我希望的那样在我的仪表板上返回。 更具体地说,这里有一个简单的代码来解释我的问题: <form method="get" actio

我参与了一个家庭自动化项目,该项目收集了许多模块(灯的控制、运动检测、视频流、门的打开检测…)。我所有的脚本都是用python编写的,我选择将web部件移植到cherrypy(真正的原因是我对PHP不太了解)。我想用cherrypy构建一个web界面,它将用作控制各个模块的仪表板。我可以从接口调用我的函数,但返回处理每次都在新生成的HTML页面上返回,而不是像我希望的那样在我的仪表板上返回。 更具体地说,这里有一个简单的代码来解释我的问题:

<form method="get" action="aff">
<button type="submit" >clic</button>

clic
这是我的HTML代码的一个片段,它显示了一个按钮,在单击时调用“aff”函数

class principal(object):
 @cherrypy.expose
 def index(self):
  return open('MySite.html')

 @cherrypy.expose
 def aff(self):
  return """ <h1> IT'S WORK </h1> """
 if name == 'main':

  cherrypy.quickstart(principal(), '/', config)
类主体(对象):
@樱桃树
def索引(自):
返回open('MySite.html')
@樱桃树
def aff(自我):
return“这是工作”
如果名称=='main':
cherrypy.quickstart(主体(),“/”,配置)
然后是我的python cherrypy代码,它检索我的HTML文件并使它可以从浏览器访问。它包含一个“aff”函数,当按下按钮时调用该函数,并返回一个文本:“It'S WORK”。 在这个级别上,我想要的是该文本显示在站点(索引)的主页上,但实际情况是,我的文本返回到一个新页面上,URL更改为:127.0.0.1:8080/aff


问题是,我如何使结果(在本例中为我的文本)显示在我的主页上?

您不使用Flask或任何其他web框架的任何原因?无论如何,请尝试
form method=“post”
当您使用“常规”HTML时,将始终重新加载并显示新内容。我认为您希望cherrypy充当rest服务器,并且您需要一个Javascript框架(angular.js、vue.js…或minimun jQuery)来构建一个单页应用程序,该应用程序将在后台(ajax/xhr)从cherrypy加载数据并更新您的HTML/DOM.Hi,感谢您的回答!我刚刚测试了POST方法,结果与GET方法完全相同。在浏览Cherrypy的官方文档时,我发现两种方法都可以不加区别地使用,结果是一样的@莫里斯:你提出的方法似乎很有趣。我只是在学习jquery,这意味着我仍然是一个优秀的初学者。那么,关于如何继续使用jquery更新dom的一条线索呢?在以后的某个地方,您可能还想了解一下,它与CherryPy集成得非常好。因此,您可以从服务器推送新数据(而不是从客户端拉)。