我正在尝试使用以下代码将变量传递给web2py中的模型函数“GetFiles”,其中结果存储为“a”:
<script>
VARIABLE = 'teststring'
a = {{=XML(response.json(GetFiles(VARIABLE)))}}
</script>
当我运行页面时,VARIABLE被评估为字符串文字,而不是'teststring'。
错误消息是: NameError:名称'VARIABLE'未定义
如果我手动将VARIABLE替换为其值,一切正常。
答案 0 :(得分:1)
以下代码:
{{=XML(response.json(GetFiles(VARIABLE)))}}
是在HTML页面传递到浏览器之前在服务器上进行评估的Python代码。因此,它只识别已在Python环境中定义的变量。另一方面,以下代码:
VARIABLE = 'teststring'
是Javascript,在将HTML页面传送到浏览器之前(即在Python代码运行之后),不会对其进行评估。
如果在浏览器中生成传递给GetFiles
的值,则不能直接从浏览器调用服务器端Python函数。相反,您必须对服务器进行Ajax调用。