9.8.3哪里使用了current_user变量?

书中9.8.3章节中创建了显示用户卡片的user_card宏,并提到:

因为user_card宏里使用Flask-Login提供的current_user变量,所以在导入模板使用时应该显示声明包含上下文

不过在user_card宏中我并没有发现有使用current_user变量啊?哪位老哥给我指一下

下面是书中user_card宏的代码:

{% macro user_card(user) %}
    <div class="user-card text-center">
        <a href="{{ url_for('user.index', username=user.username) }}">
            <img class="rounded avatar-m" src="{{ url_for('main.get_avatar', filename=user.avatar_m) }}">
        </a>
        <h6>
            <a href="{{ url_for('user.index', username=user.username) }}">{{ user.name }}</a>
        </h6>
    </div>
{% endmacro %}

user_card 宏目前还没有使用,9.9.2 节会引入。这句话应该修改为:

因为 user_card 宏在后面会使用 Flask-Login 提供的 current_user 变量,所以我们在导入时使用 with context 指令显式声明包含上下文,提前做好准备:

明白了,后面章节的关注操作区域宏follow_area会引入current_user,而user_card宏又使用了follow_area

另外user_card宏定义中使用follow_area时并未做导入声明(follow_area宏与其定义在同一文件),在模板中使用user_card宏时也没有声明导入follow_area,这个机制和函数是一模一样哇

1 个赞