我将以下值传递给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从字面上评估这个字符串而不是数字表达式?
答案 0 :(得分:1)
看起来javascript正在评估日期作为整数的减法。如果在引号中包含{{start_date}},则不会发生这种情况。相反,这将允许您的日期被识别为字符串。