【问题标题】:AngularJS with Python flask [duplicate]AngularJS与Python烧瓶[重复]
【发布时间】:2018-07-09 06:29:19
【问题描述】:

我正在使用flask来渲染索引页

app = Flask(__name__)
@app.route("/")
def main():
    return render_template('index.html')

我正在通过对烧瓶 REST API 进行的 ajax 调用发送结果。我可以使用 Jquery 构建表,但如果我使用 angularjs ng-repeat 来创建如下表

<table>
    <tr data-ng-repeat="r in regResults">
        <td>{{r.TCID}}>
    </tr>
</table>

我收到以下错误

[2018-01-30 16:50:32,833] ERROR in app: Exception on / [GET]
UndefinedError: 'r' is undefined

【问题讨论】:

    标签: python angularjs flask


    【解决方案1】:

    这是因为AngularJinja2 使用{{}} 作为模板标签来打印变量。 Jinja2 在浏览器渲染之前处理模板(最终被 Angular 拾取)。最简单的解决方案是将块包含在{% raw %} 中,如下所示:

    {% raw %}
    <table>
        <tr data-ng-repeat="r in regResults">
            <td>{{r.TCID}}>
        </tr>
    </table>
    {% endraw %}
    

    这告诉jinja2不要干涉模板的那个部分。

    如果您发现自己的 {% raw %} 标记过多,可能是时候将前端与后端分开并通过 API 进行通信了。

    【讨论】:

    • 你能帮我分离前端和后端吗
    • @Krishna 我并不是说您的方法完全错误。这种方法非常适合小型网站。要分离前端和后端,您需要在 Flask 中构建一个 API,它接受请求并返回 JSON(不呈现模板),然后您的 Angular 应用程序将从那里获取其信息。应用程序的 UI 方面将完全由 Angular 处理。
    • 知道了!!谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    相关资源
    最近更新 更多