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

如何在PyWebIO框架中获取当前请求的URL

PyWebIO获取当前请求URL解决方案

核心实现方法

你之前调用pywebio.session.info未获取到目标数据,是因为没有指定对应的url字段,可按以下两种方案实现:

方案1:调用session内置字段(推荐,PyWebIO 1.6及以上版本适用)

直接读取info.url属性即可拿到完整的当前请求URL:

from pywebio.session import info

# 在会话处理函数内调用
current_url = info.url

除了完整URL外,你还可以按需获取相关拆分字段:

  • info.origin:站点源地址,例:http://localhost:8080
  • info.path:URL路径部分,例:/test

方案2:执行前端JS获取(全版本兼容)

如果使用的是旧版本PyWebIO,没有内置info.url字段,可以直接调用eval_js执行前端原生JS获取地址:

from pywebio.session import eval_js

current_url = eval_js("window.location.href")

可运行完整示例

from pywebio import start_server
from pywebio.session import info, eval_js
from pywebio.output import put_text

def main():
    # 方案1获取URL
    put_text("通过session.info获取的完整URL:", info.url)
    # 方案2获取URL
    put_text("通过前端JS获取的完整URL:", eval_js("window.location.href"))
    # 相关衍生字段
    put_text("站点源地址:", info.origin)
    put_text("URL路径:", info.path)

if __name__ == '__main__':
    start_server(main, port=8080, debug=True)

注意事项

  • 所有获取URL的接口必须在PyWebIO的会话处理函数内部调用,不能在脚本顶层直接执行,否则会抛出上下文错误
  • 若PyWebIO以Flask、Django等后端框架集成模式运行,以上两种方案依然有效,无需额外调用后端框架本身的请求对象获取地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:36:03