flaskurl_用于生成HTTP URL而不是https
url_for
用户注销后,我用于生成重定向URL:
return redirect(url_for('.index', _external=True))
但是,当我将页面更改为https连接时,url_for
仍然给我http。
我想明确地要求在网址开头url_for
添加https。
你能指出我该如何更改吗?我看了看Flask文档,没有运气。
回答:
使用Flask 0.10,将提供比包装更好的解决方案url_for。如果你查看https://github.com/mitsuhiko/flask/commit/b5069d07a24a3c3a54fb056aa6f4076a0e7088c7,则会_scheme添加一个参数。这意味着你可以执行以下操作:
url_for('secure_thingy', _external=True,
_scheme='https',
viewarg1=1, ...)
_scheme
设置URL方案,生成https://..
而不是的URL http://
。但是,默认情况下,Flask仅生成路径(不包含主机或方案),因此你需要包括_external=True
从/secure_thingy
到的路径https://example.com/secure_thingy
。
但是,请考虑将你的网站改为仅使用HTTPS。似乎你只想对部分“安全”路由部分实施HTTPS,但如果未加密链接到安全页面的页面,则无法确保不更改https-URL。
以上是 flaskurl_用于生成HTTP URL而不是https 的全部内容, 来源链接: utcz.com/qa/410460.html