Pywebio如何实现点击按钮重定向跳转至localhost:4200页面
PyWebIO 跨端口按钮跳转实现方案
不需要写自定义前端模板,直接用PyWebIO内置API就能实现,核心是按钮回调里触发前端原生跳转,避开框架本身的同服务路由限制。
- 用到的组件:按钮控件用
actions渲染,前端逻辑执行用run_js接口 - 跳转逻辑:同页跳转用
window.location.href赋值,新开标签页跳转用window.open - 避坑:别用框架自带的
go_app,那个只支持同服务下的应用跳转,跨端口直接失效
完整可运行示例
from pywebio import start_server from pywebio.input import actions from pywebio.session import run_js def main(): # 页面上渲染跳转按钮 click_res = actions('页面操作', [ {'label': '跳转至4200端口页面', 'value': 'to_4200', 'color': 'primary'} ]) if click_res == 'to_4200': # 执行前端跳转,当前页直接跳转到目标地址 run_js('window.location.href = "http://localhost:4200"') # 要新开标签页就换成下面这行 # run_js('window.open("http://localhost:4200")') if __name__ == '__main__': # 原有服务启动配置,保持8080端口不变 start_server(main, port=8080)
注意:如果目标4200端口的页面有跨域访问限制,需要在对应服务端放开CORS配置,否则跳转后会被目标服务拦截,和PyWebIO端逻辑无关。
内容的提问来源于stack exchange,提问作者BISHAL
相关产品推荐
相关产品推荐

