Webpy和javascript重载内容
Webpy and javascript to reload content
你好,我从web.py开始,还有很多事情我不明白。这个真的很烦人。我尝试通过使用web.py和javascript做一个简单的页面。这个想法是在一个div上显示一个随机值,每秒钟由一个python函数更新。这是我使用的代码:
import web
import random
def rnd():
return random.randint(0, 10)
render = web.template.render('templates', globals={'rndm':rnd})
urls = (
'/mhs(.*)', 'mhs',
'/(.*)', 'index',
)
app = web.application(urls, globals())
class reloader:
def GET(self):
return render.reloader(rnd)
class index:
def GET(self, name='Bob'):
return render.index(name)
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
然后reloader.html文件:
$def with(rnd)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<div id='demo'>Status: ? </div>
<script type="text/javascript">
function UpdateLeds() {
var x = document.getElementById('demo');
x.innerHTML = "Status: $rndm()";
}
setInterval(UpdateLeds, 1000);
</script>
</body>
</html>
我希望代码显示一个页面,其中每秒钟刷新一次0到10的随机数。然而,我所能得到的是一个显示静态值的页面(即:通过rnd获得的第一个随机数)。但是,如果我手动刷新页面,则值会按照预期更新。我不知道问题是出在我的代码上还是出在我对架构的理解上。有人能帮帮我吗?
如果我改变你的javascript函数为这个,它为我工作:
function UpdateLeds() {
var x = document.getElementById('demo');
var random = Math.floor((Math.random() * 10) + 1);
x.innerHTML = "Status: "+random;
}
我不确定你在HTML中试图用$def with(rnd)做什么。我认为你可能混合了web.py python和javascript语法(只是猜测),但是一旦页面在浏览器中呈现,python就不会对你有任何好处,你必须用纯javascript做你想做的事情。
这是一个JSFiddle: https://jsfiddle.net/s7n6nxng/
相关文章:
- Javascript重载了括号
- 在JavaScript中重载函数
- javascript中的函数重载使两个函数名称相同,但输入数字不同
- Javascript:运算符重载
- 访问小程序的 JavaScript 是否支持重载
- JavaScript 中的方法重载
- 我可以重载JavaScript的索引运算符吗?
- 带有回调的JavaScript重载
- 如何在JavaScript中重写重载函数的一部分
- JavaScript图像构造函数重载
- 当页面请求和重载javascript函数不起作用时
- 无效的字符串长度/分配大小重载JavaScript
- 重载javascript函数有多安全
- 如何重载javascript文件
- 重载Javascript文件(包括事件,变量等)
- 我怎样才能避免重载JavaScript CallStack
- 重载javascript期间的加载指示器
- 如何重载JavaScript函数?(更改Slickgrid's编辑器)
- 如何重载JavaScript对象的相等操作符
- 通过超链接提交值而不重载Javascript页面