首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过pyodide使用post api

如何通过pyodide使用post api
EN

Stack Overflow用户
提问于 2020-11-11 23:16:40
回答 2查看 494关注 0票数 3

在pyodide中,它不支持requests模块,所以从我们使用open_url的api中获取数据,以及如何使用pyodide来发布数据

EN

回答 2

Stack Overflow用户

发布于 2020-11-11 23:46:56

pyodide当前不支持requests模块,因为它依赖于WebAssembly browser VM中未实现的套接字。

但是,您可以在pyodide中使用Web进行POST调用。下面是一个使用XMLHttpRequest的示例

代码语言:javascript
复制
from js import XMLHttpRequest, Blob
import json

data = {"a": 1}

req = XMLHttpRequest.new()
req.open("POST", "https://httpbin.org/anything", False)
blob = Blob.new([json.dumps(data)], {type : 'application/json'})
req.send(blob)
str(req.response)

在未来,一些经典的超文本传输协议客户端模块可能会被打上补丁,以使用pyodide中的Web (参见pyodide#140)。

票数 2
EN

Stack Overflow用户

发布于 2020-11-12 20:50:01

您也可以使用JS Python直接形成Fetch API代码。为此,首先必须从js模块导入window对象。这是一个现场演示:

代码语言:javascript
复制
let python_code = `
from js import window

def fetch():
  window.fetch('http://karay.me/truepyxel/test.json').then(lambda resp: resp.json()).then(lambda jsoh: show_result(jsoh))
  
def show_result(data):
  div = window.document.createElement('div')
  #insert into body as a first child
  window.document.body.prepend(div)
  div.innerHTML=window.JSON.stringify(data)
`

// init environment
languagePluginLoader
// then run Python code
  .then(() => pyodide.runPythonAsync(python_code));
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<script src="https://pyodide-cdn2.iodide.io/v0.15.0/full/pyodide.js"></script>
</head>
<body>
<button onclick='pyodide.globals.fetch()'>Fetch</button>
</body>
</html>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64789154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档