使用python&和页面刷新后重新运行函数时遇到问题web.py

时间:2011-06-28 11:00:36

标签: python function web.py

就像标题所说,我遇到了web.py的问题。

我有一个启动web.py实例并提供基本页面的脚本。使用web.py模板系统,我每次重新加载时都能获得像time.time()这样的函数刷新(意思是,当我刷新时,打印时间增加了)。但是,我有一个自编写的函数,它执行一些数学运算并返回一个多行字符串。当从脚本或命令行调用该函数时,它每次都返回一个不同的值,但是,当我使用web.py模板系统调用它时,它似乎只运行一次函数,然后不会在其他页面重新加载时重新运行它(即使每次都更新time.time())。让它重新运行的唯一方法是重启脚本。

这是有问题的功能:

    def casecount():
      curcount = 80
      sc = startcount(date)
      delta = sc - curcount
      pace = float(delta) / float(ElTime(time, "9:00"))
      eta = float(curcount) / float(pace)
      return '''We started with %d cases as of 9AM<br> 
      Remaining cases as of %s: %d<br>
      We\'re working at a pace of %.3f cases per hour. At this rate, we will finish in approximately %.3f hours<br>''' % (sc, time, curcount, pace, eta)

显然我已经编写了脚本调用的其他函数,但我知道它可以在自己运行时运行。

我正在使用以下代码提供对web.py模板系统的功能访问:

    render = web.template.render('templates/', cache=False, globals={'cc': casecount, 'time': time} )

最后,我用模板调用模板中的代码:

    <html>
    <head>
    </head>
    <body>
    $time()
    $cc()
    </body>
    </html>

有什么想法吗?我已经有一段时间了,并且搜索谷歌无济于事。

FIXED: Welp,我在redditor的帮助下修复了它。我的问题是时间使用全局变量。当然,该变量在第一次导入脚本时已正确加载,但随后未在函数重新加载时更新,因为,为什么它应该是,它超出了范围。

0 个答案:

没有答案