如何在Flask中实现点击打开PDF文件到新标签页
解决方案
你当前编写的/my_cv后端路由逻辑完全正常,不需要修改,你之前尝试的两种方案本身就不适配当前需求:
webbrowser.open_new_tab是Python调用本地系统浏览器的工具库,作用是在运行Flask服务的机器上打开浏览器标签,和用户端的浏览器行为完全无关,不要在Web后端逻辑中使用该方法redirect是服务端路由跳转方法,也无法控制用户端浏览器的页面打开方式
正确实现步骤
- 后端逻辑保持现有代码不变即可
- 找到首页模板中指向
/my_cv的链接元素,给它添加target="_blank"属性即可实现新标签页打开效果,示例代码:
<!-- 首页模板跳转链接写法 --> <a href="/my_cv" target="_blank">查看我的简历(新标签页打开)</a>
可选优化(按需使用)
如果后续你需要让用户点击后直接下载PDF而不是在浏览器内预览,可以修改后端路由的返回参数:
@app.get("/my_cv") def my_cv(): workingdir = os.path.abspath(os.getcwd()) filepath = workingdir + '/static/files/' return send_from_directory(filepath, 'DanielTurnerCV.pdf', as_attachment=True)
内容的提问来源于stack exchange,提问作者DannTurner
相关产品推荐
相关产品推荐

