web.py和JavaScript问题

时间:2011-11-23 23:22:28

标签: javascript web.py

我一直在尝试创建一个结合了web.py和JavaScript的页面,并使用以下代码:

$code: 
     def getContents(fname): 
          a = req.get(fname) 
          return a.content 

<script type="text/javascript"> 
     document.write("$getContents('http://mysite.net')"); 
</script> 

在这里,req传递给我的模板的$def with()函数,它是Python Requests module的模块对象,我从中执行方法。)

问题是,文档是空白的,这意味着document.write函数没有输入。有没有解决的办法?我这样做是错误的吗?

编辑:函数输出不为空;如果您使用纯HTML来打印它,它将起作用。

提前致谢。

(我也在 web.py Google小组上发布了这个问题,但尚无答案。)

2 个答案:

答案 0 :(得分:1)

您可以在模板全局变量中启用json编码器,并在javascript代码中使用它。

import json
template_globals = {"json_encode": json.dumps}
render = web.template.render(config.template_dir, globals=template_globals, base="layout")

然后在你的模板中

<script>
var obj = $:json_encode({"html": getContents('http://mysite.net')});
document.write(obj.html);
</script>

答案 1 :(得分:0)

也许你在渲染内容中有引号,它会使javascript无效。