Flask框架中flask_mail的_external=True参数含义是什么?
关于Flask中
url_for的_external=True参数的解释 没问题,我来帮你把这个参数的作用讲明白:
- 默认行为:Flask的
url_for()函数默认生成的是相对URL,比如当你调用url_for('users.reset_token', token=token)时,返回的内容会是类似/users/reset_token?token=xxxxxx这样的路径,它只包含路由部分,没有域名和协议(http/https)。 _external=True的作用:当你加上这个参数后,url_for()会生成完整的绝对URL,也就是包含协议、域名(甚至端口,如果是本地开发的话)和路由的完整地址,比如http://localhost:5000/users/reset_token?token=xxxxxx或者线上环境的https://yourapp.com/users/reset_token?token=xxxxxx。
为什么在密码重置邮件里必须用这个参数?
因为邮件客户端不知道你的应用部署在哪个域名下,相对路径对它们来说是无效的——用户点击相对路径的链接,客户端不知道该跳转到哪个网站。只有完整的绝对URL才能让用户直接点击跳转到你的密码重置页面。
你在send_reset_email函数里的用法完全正确,这个参数就是专门用来生成这类需要在外部环境(比如邮件、第三方应用)中使用的完整链接的。
内容的提问来源于stack exchange,提问作者ThuggyTM
相关产品推荐
相关产品推荐

