Eel urllib请求函数向JS返回null,但向python返回值

我有以下 Eel 的 Python 代码


import eel, urllib.request


@eel.expose

def 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。


繁花如伊
浏览 1544回答 1
1回答

繁华开满天机

尝试这个:@eel.exposedef python_function():    response = urllib.request.urlopen('http://google.com').read()    return response.decode('latin1')差别就是response.decode('latin1')回报。在Eel的Python层,必须根据Python的JSON编码器返回一个可序列化的对象,而返回的原始二进制字符串read()是不可序列化的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python