如何评估Jinja2上下文变量作为文字字符串?

时间:2014-11-17 17:06:11

标签: javascript jinja2

我将以下值传递给Python的Jinja2模板:

context = {}
if 'start_date' in request.values:
    context['start_date'] = request.values['start_date']
return render_template('index.html', **context)

index.html中,我有以下Javascript:

    <script type="text/javascript">
        console.log({{start_date}});
        {% if start_date %}
        START_DATE = {{start_date}};
        {% else %}
        START_DATE = null;
        {% endif %}
    </script>

意图是变量start_date将是一个字符串,它作为常量START_DATE进一步传递给Javascript代码。但是,当我在GET中加载start_date=2013-01-01的页面时,我在控制台中得到了打印2011:看起来像Jinja2将值计算为算术表达式并返回2013的结果 - 1 - 1 = 2011年。

如何强制Jinja2从字面上评估这个字符串而不是数字表达式?

1 个答案:

答案 0 :(得分:1)

看起来javascript正在评估日期作为整数的减法。如果在引号中包含{{start_date}},则不会发生这种情况。相反,这将允许您的日期被识别为字符串。