jinja2.exceptions.TemplateSyntaxError:意外的字符'&'

时间:2019-06-25 17:29:10

标签: python flask deployment jinja2

我正在本地部署机器学习模型,并为此使用flask。我有main.html和app.py,但是当我尝试在控制台中运行它时,我收到了上面的错误消息。

在两个文件中都找不到“&”,这就是为什么我不能解决问题。

我检查了所有文件,但找不到像“&”之类的字符,调试模式只是引发了我提到的错误。

这是html格式:

<EditText android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:textSize="@dimen/text_large"
              android:maxLines="1"
              android:inputType="textEmailAddress"
              android:imeOptions="actionNext"
              android:layout_marginLeft="@dimen/element_margin_large"
              android:layout_marginRight="@dimen/element_margin_large"
              android:layout_marginTop="0dp"/>

这是app.py:

<!doctype html>
<html>
<style>
form {
    margin: auto;
    width: 35;
}
.result {
    margin: auto;
    width: 35;
    border: 1px solid 
}
</style>
<head>
    <title>Sales Prediction</title>
</head>
<form action="{{url_for('main')}}" method="POST">
    <fieldset>
        <legend>Input values:</legend>
        Week:
        <input name="week" type="number" required>
        <br>
        <br> Grad:
        <input name="grad" type="number" required>
        <br>
        <br> Preis:
        <input name="preis" type="number" required>
        <br>
        <br>
        <input type="submit">
    </fieldset>
</form>
<br>
<div class="result" align="center">
    {%if result%}
        {%for variable, value in original_input.items()%}
            <b>{{variable}}</b> : {{value}}
        {%endfor%}
        <br>
        <br> Predicted number of sales :
            <p style="font-size:50px">{{result}}</p>
    {%endif%}
</div>
</html>

在控制台中运行它

jinja2.exceptions.TemplateSyntaxError:250601出现意外的字符'&'

2 个答案:

答案 0 :(得分:1)

Jinja分隔符({{{%等)与其内部的代码之间必须有空间。

<form action="{{ url_for('main') }}" method=post>
    <fieldset>
        <legend>Input values:</legend>
        Week:
        <input name="week" type="number" required>
        <br>
        <br> Grad:
        <input name="grad" type="number" required>
        <br>
        <br> Preis:
        <input name="preis" type="number" required>
        <br>
        <br>
        <input type="submit">
    </fieldset>
</form>
<br>
<div class="result" align="center">
    {% if result %}
        {% for variable, value in original_input.items() %}
            <b>{{ variable }}</b> : {{ value }}
        {% endfor %}
        <br>
        <br> Predicted number of sales :
            <p style="font-size:50px">{{ result }}</p>
    {% endif %}
</div>

答案 1 :(得分:0)

有时候,您可以使用@符号而不是&符号来得到此错误。

就我而言,我的烧瓶应用程序中有一些ASP.Net代码,而&符实际上是HTML文件中的问题:

<p class="nav navbar-text navbar-right">Hello, {{ @User.Identity.GetLogin()! }}</p>