You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 13:17:34