url_for用户注销后,我用于生成重定向URL:
url_for
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。
_scheme
https://..
http://
_external=True
/secure_thingy
https://example.com/secure_thingy
但是,请考虑将你的网站改为仅使用HTTPS。似乎你只想对部分“安全”路由部分实施HTTPS,但如果未加密链接到安全页面的页面,则无法确保不更改https-URL。