【问题标题】:Running method before main page loads (CherryPy)主页加载前的运行方法(CherryPy)
【发布时间】:2012-08-01 19:45:39
【问题描述】:

我没有太多的网络编程经验,所以我将尝试简单地解释问题。

这是我的一个由 CherryPy (cherrypy.quickstart(SLA_App())) 运行的类的主要方法:

class SLA_app(Object):
    def index(self):
       global files;
       files=[...]
       createTable.createTable(files, '20/06/2012', '03/07/2012')
       cherrypy.tree.mount(SLA_App(), '/', 
        config = { '/': { 'tools.staticdir.on' :True,
       'tools.staticdir.dir' : 'some/dir',
       'tools.staticdir.index' : 'cherry.html' } 
        })
        return open('cherry.html')
    index.exposed = True

我创建了一个 CherryPy 服务器。 每次加载主页时,都需要执行一个方法。该方法在某个文件中生成 HTML 代码。它在 createTable.createTable(files) 中完成。说,它创建了 insert.html 。正在加载的主页面有 jquery 方法,该方法将文件的代码加载到一些文件中,最后得到包含所有内容的结果页面。

现在,每当有人进入页面时,我都希望执行该方法。问题是它只在服务器起点有效。每次人们进入页面时,它都会加载旧文件(不会调用方法)。每次页面加载时如何让它工作?

【问题讨论】:

    标签: python jquery webserver cherrypy


    【解决方案1】:

    最后我解决了这个问题。问题是每次网络启动时,它都应该向服务器发送请求,接收答案并动态构建页面。这可以通过 Ajax 来完成。由于我使用 jQuery,$.post 方法在处理中非常有用。

    对于所有对此不熟悉的人,就像我一样,我建议阅读 David Sawyer McFarland 的“JavaScript 和 jQuery:缺失的手册”。祝你好运!

    【讨论】:

      【解决方案2】:

      您对 cherrypy.tree.mount 的调用不应在 index 方法内完成(尽管我认为这不是您唯一的问题)。

      class SLA_app(Object):
          def index(self):
             global files;
             files=[...]
             createTable.createTable(files, '20/06/2012', '03/07/2012')
      
             return open('cherry.html')
          index.exposed = True
      
      cherrypy.tree.mount(SLA_App(), '/', 
          config = { '/': { 'tools.staticdir.on' :True,
         'tools.staticdir.dir' : 'some/dir',
         'tools.staticdir.index' : 'cherry.html' } 
          })
      

      我不确定您的 createTable 做了什么,但如果必须做一次,也可以从该索引方法中提取它。另请注意,使用 staticdir 工具时,您的 dir 路径必须是绝对路径。请阅读文档中的this section

      最后,您的配置似乎覆盖了 index 方法本身,因为两者都会响应 /。

      【讨论】:

      • 它没有解决问题,但感谢有用的建议。是否进行了更改。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2017-01-13
      相关资源
      最近更新 更多