我一直在尝试创建一个结合了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小组上发布了这个问题,但尚无答案。)
答案 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无效。