使用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://..
而不是的URLhttp://
。但是,默认情况下,Flask仅生成路径(不包含主机或方案),因此您需要包括_external=True
从/secure_thingy
到的路径https://example.com/secure_thingy
。
似乎您只想对部分“安全”路由部分实施HTTPS,但如果未加密链接到安全页面的页面,则无法确保不更改https- URL。这类似于混合内容。