我有以下 Eel 的 Python 代码import eel, urllib.request@eel.exposedef python_function(): response = urllib.request.urlopen('http://google.com').read() return(response)eel.init('web')eel.start('index.html', port=0)现在,当我从 JavaScript 中调用它时async function jsFunction() { let result = await eel.python_function()(); return result;}我总是得到null。当我print(python_function())从 Python 调用时,我得到了预期的 HTML 字符串。测试时,JavaScript 在到达 URL 之前返回 null。我认为 Python 阻止了代码。我需要重新实现一个块吗?从 返回一个字符串python_function将得到 中的实际字符串jsFunction。
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
尝试这个:
@eel.expose
def python_function():
response = urllib.request.urlopen('http://google.com').read()
return response.decode('latin1')
差别就是response.decode('latin1')
回报。
在Eel的Python层,必须根据Python的JSON编码器返回一个可序列化的对象,而返回的原始二进制字符串read()
是不可序列化的。
添加回答
举报
0/150
提交
取消