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

如何在PyScript中运行Flask并适配现有网站?

解决PyScript嵌入Flask脚本出现OSError: [Errno 50]的问题

错误原因

Flask是服务端框架,需要启动HTTP服务器监听端口处理请求,但PyScript运行在浏览器沙箱环境中,不允许创建这类网络服务,因此会抛出「OSError: [Errno 50] Protocol not available」错误——你不能在浏览器里启动Flask服务器。

替代方案:直接在前端处理URL参数

要实现URL参数展示数据的功能,无需依赖Flask路由机制,直接在PyScript中读取浏览器URL的查询参数,再执行你的业务逻辑即可。

完整代码示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>URL参数展示</title>
    <link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
    <script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head>
<body>
    <div id="result"></div>
    <py-script>
        # 调用浏览器API获取URL查询参数
        from js import URLSearchParams, window

        # 解析URL中的参数
        params = URLSearchParams(window.location.search)
        p_id = params.get("P_ID")
        p_title = params.get("P_TITLE")

        # 替换为你原Flask /data端点的业务逻辑
        def generate_content(p_id, p_title):
            if not p_id or not p_title:
                return "请提供P_ID和P_TITLE参数"
            # 这里写入你原来处理参数返回内容的逻辑
            return f"ID: {p_id},标题: {p_title} 对应的内容:\n这是你要展示的具体数据内容"

        # 将结果渲染到页面
        result = generate_content(p_id, p_title)
        document.getElementById("result").innerText = result
    </py-script>
</body>
</html>

使用说明

  1. 将上述代码保存为HTML文件,直接在浏览器中打开
  2. 在URL后拼接参数,比如:file:///你的文件路径/xxx.html?P_ID=001&P_TITLE=示例标题
  3. 页面会自动读取参数并展示对应内容

如果需要后端数据交互

如果原Flask逻辑涉及数据库查询等后端操作,不要在PyScript里启动Flask,而是:

  • 保留独立的Flask服务,提供/data接口
  • 在PyScript中使用fetch API调用该接口获取数据后展示:
    import asyncio
    from js import fetch
    
    async def fetch_backend_data(p_id, p_title):
        response = await fetch(f"http://localhost:5000/data?P_ID={p_id}&P_TITLE={p_title}")
        data = await response.json()
        return data
    
    # 调用接口并渲染结果
    backend_data = await fetch_backend_data(p_id, p_title)
    document.getElementById("result").innerText = str(backend_data)
    

内容的提问来源于stack exchange,提问作者暫時時

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:40:52