使用Flask-Security保护页面的一部分

时间:2014-04-17 10:07:24

标签: python redirect flask jinja2 flask-security

我有一个由Flask生成的网页,应该根据用户的状态显示内容。

目前,jinja2模板的相关部分如下所示:

{% if service.spotting_data.loco_id %}
    Spotter Info *:<br />
    {% if current_user.is_authenticated() %}
        Loco: {{ service.spotting_data.loco_id }} <br />
        Consist: {{ service.spotting_data.consist_info }}
    {% else %}
        We have information on the locomotive and consist for this service, however you need to <a href="{{ url_for('security.login') }}"> log in </a> to see it
    {% endif %}
{% endif %}

当有人点击&#34;登录&#34>时会出现问题。链接 - 目前他们只是被重定向回索引页面,而不是包含此模板的页面。

有没有办法在<a href>上为{{url_for()}}提供额外的标记,以确保在登录后用户被重定向回此页面?

1 个答案:

答案 0 :(得分:0)

你需要传递参数&#34; next&#34;到url_for。

当您使用render_template时,将请求对象发送到模板:

render_template(&#34; template.html&#34;,请求=请求)

然后在你的模板中你可以做

{{url_for(&#39; security.login&#39;,下一= Request的)}}

您将在登录时重定向回当前页面...