当前位置: 代码迷 >> python >> 如何将html视图数据或(Python)服务器数据传输到Angular或Javascript?
  详细解决方案

如何将html视图数据或(Python)服务器数据传输到Angular或Javascript?

热度:16   发布时间:2023-06-27 21:54:21.0

我正在使用python webapp2框架在GAE上编写小型Web应用程序。

我要实现的是通过javascript或angularjs将服务器数据显示到html视图。 实际上,该应用程序基于服务器数据使用d3.js绘制了一些图形。 我知道我可以使用$ http.get从服务器检索数据。 但是这种方式我需要创建另一个页面或处理程序。 我想知道是否有某种方法可以执行以下操作。

  1. 在服务器python处理程序上,检索存储的数据,然后传递给jinja2模板值。 渲染html。
  2. 通过jinja2模板值在html视图上显示一些数据。
  3. (缺少的部分)如何将数据从python处理程序传递到js? 或者如何将数据从html视图传递到js? 我从html视图知道两种方法。 一种是使用嵌入式javascript代码。

    var data = {{serverData}};

另一种是使用带有角度数据绑定的隐藏输入形式。 他们俩都不太好。

4,计算数据并使用d3js或其他js lib返回视图

有什么想法吗? 我认为可能有某种角度的方法可以很好地做到这一点,但并没有弄清楚。

既然您已经要为前端构建Angular应用程序,为什么不使整个体系结构成为RESTful? 这样,前端Angular应用程序将负责演示和仅服务器的数据。 您可以通过JSON在服务器和前端之间传递数据,这样做的好处是不需要在后端处理html或模板? Angular已经有Service和$ http可以抽象出双向数据绑定,并且使用webapp2的RESTful性质,您可以毫不费力地实现这一目标。

Jinja2对此有一个建议,它是在构建模板时将对象传递到上下文中。 我不确定为什么您认为这很丑,或者至少比使用Jinja2仅模板HTML更为丑。 这是他们的建议(请参阅 ):

<script type=text/javascript>
    doSomethingWith({{ user.username|tojson|safe }});
</script>

正如其他人所建议的那样,您可以根据需要使用RESTful服务,但是在不了解您的应用程序的前提下,我不认为这会使您的代码更简洁。 以我的经验,在初始页面加载中嵌入一些数据是一种很常见的做法,它可以简化应用程序的其余部分。 如果您在初始页面加载时已经在服务器上拥有该数据,则无需处理客户端异步加载,并且不会降低初始请求的速度。

  相关解决方案