开发者社区> 问答> 正文

JinJa2 模板中全局变量url_for

我读了base_template为

xample 3-10. templates/base.html: favicon definition
#+BEGIN_SRC html
{% block head %}
{{ super() }} <!-- preserve the original contents -->
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}"
    type="image/x-icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}"
    type="image/x-icon">
{% endblock %}
#+END_SRC

视图功能:

from datetime import datetime
from flask import Flask, render_template
from flask_bootstrap import Bootstrap
from flask_moment import Moment

app = Flask(__name__)

bootstrap = Bootstrap(app)
moment = Moment(app)
..
@app.route('/')
def index():
    return render_template('index.html',
                           current_time=datetime.utcnow())

至于url_for未传递到的上下文index,该如何直接在模板中使用它。

因此,搜索JinJia2文档未找到url_for实际上是从顶层导入的关键字

In [1]: from flask import url_for        

In [2]:  

展开
收起
安忆333 2019-12-11 11:14:59 2388 0
1 条回答
写回答
取消 提交回答
  • Context Processor 充当HTML和Python之间的桥梁,您可以将信息从视图函数传递到HTML。

    从Flask Docs

    为了将新变量自动注入模板的上下文中,Flask中存在上下文处理器。上下文处理器在呈现模板之前运行,并且能够将新值注入到模板上下文中。上下文处理器是一个返回字典的函数。

    @app.context_processor
    def inject_user_last_name():
        return {last_name=user.last_name}
    

    现在last_name,您无需访问last_name 即可访问模板中的render_template。

    这是供参考的默认标准上下文变量列表 1. config

    1. request

    2. session

    3. g

    4. url_for

    5. get_flashed_messages

    2019-12-11 11:17:29
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载