Py-click绑定Python函数无响应,点击按钮未触发函数执行求助
PyScript中py-click绑定的Python函数未触发的解决方法
你的问题核心是外部Python文件中的函数默认处于模块私有上下文,无法被HTML中的py-click指令访问。以下是具体修复方案:
方案一:手动将函数暴露到全局上下文
修改main.py,通过PyScript的window对象把hello函数挂载到浏览器全局环境:
import requests from pyscript import document, window url = document.querySelector("#url") display = document.querySelector("#display") display.innerText = "a" link = "" def hello(): global link # 若需修改全局变量link则保留,否则可删除 link = url.value display.innerText = link # 将函数暴露到全局,让HTML能识别到 window.hello = hello
方案二:使用PyScript装饰器绑定事件(更推荐)
无需在HTML中写py-click,直接在Python代码中用@when装饰器绑定按钮点击事件,避免全局暴露的问题:
修改main.py:
import requests from pyscript import document from pyscript import when url = document.querySelector("#url") display = document.querySelector("#display") display.innerText = "a" link = "" @when("click", selector="input[type='submit']") def hello(): global link link = url.value display.innerText = link
同时删除HTML按钮中的py-click="hello"属性即可。
额外检查:确保依赖配置正确
如果你的pyscript.json配置文件存在,需确保声明了依赖包,示例:
{ "packages": ["requests"] }
完成以上修改后,点击按钮即可触发hello函数,实现获取输入框URL并展示的功能。
内容的提问来源于stack exchange,提问作者Sihan Pathiraja
相关产品推荐
相关产品推荐

