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

如何将html视图数据或(Python)服务器数据传输到Angular或Javascript?,javascript,python,angularjs,google-app-engine,jinja2,Javascript,Python,Angularjs,Google App Engine,Jinja2,我正在使用PythonWebApp2框架在GAE上编写一个小型web应用程序 我想要实现的是通过javascript或angularjs向html视图显示服务器数据。实际上,应用程序基于服务器数据使用d3.js绘制一些图形。我知道我可以使用$http.get从服务器检索数据。但这样我需要创建另一个页面或处理程序。我想知道是否有一些方法,我可以做以下的行动 在服务器python处理程序上,检索存储的数据,然后传递给jinja2模板值。呈现html 通过jinja2模板值在html视图上显示一些数据

我正在使用PythonWebApp2框架在GAE上编写一个小型web应用程序

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

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

    var data={{serverData}}

  • 另一种是使用带角度数据绑定的隐藏输入表单。他们两个都不太好

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


    你知道吗?我想也许有一些角度的方法可以做到这一点,但我没有弄明白

    既然您已经准备为前端构建一个Angular应用程序,为什么不让整个架构变得RESTful呢?这样,前端Angular应用程序将负责演示,而服务器只负责数据。您可以通过JSON在服务器和前端之间传递数据,这样做的好处是不需要在后端处理html或模板?Angular已经有了可以抽象双向数据绑定的服务和$http,使用webapp2的RESTful特性,您可以毫不费力地实现这一点。

    既然您已经准备为前端构建Angular应用程序,为什么不让整个架构RESTful呢?这样,前端Angular应用程序将负责演示,而服务器只负责数据。您可以通过JSON在服务器和前端之间传递数据,这样做的好处是不需要在后端处理html或模板?Angular已经有了可以抽象双向数据绑定的服务和$http,使用webapp2的RESTful特性,您可以毫不费力地实现这一点。

    既然您已经准备为前端构建Angular应用程序,为什么不让整个架构RESTful呢?这样,前端Angular应用程序将负责演示,而服务器只负责数据。您可以通过JSON在服务器和前端之间传递数据,这样做的好处是不需要在后端处理html或模板?Angular已经有了可以抽象双向数据绑定的服务和$http,使用webapp2的RESTful特性,您可以毫不费力地实现这一点。

    既然您已经准备为前端构建Angular应用程序,为什么不让整个架构RESTful呢?这样,前端Angular应用程序将负责演示,而服务器只负责数据。您可以通过JSON在服务器和前端之间传递数据,这样做的好处是不需要在后端处理html或模板?Angular已经有了可以抽象双向数据绑定的服务和$http,使用webapp2的RESTful特性,您可以毫不费力地实现这一点。

    Jinja2对此有一个建议,就是在构建模板时将对象传递到上下文中。我不知道你为什么认为这很难看,或者至少比使用Jinja2只为HTML模板更难看。以下是他们的建议(见):

    
    doSomethingWith({{user.username | tojson | safe}});
    

    正如其他人所建议的,如果您愿意,可以使用RESTful服务,但在不了解更多应用程序的情况下,我不相信这会使您的代码更干净。根据我的经验,在初始页面加载中嵌入一些数据是一种相当常见的做法,可以简化应用程序的其余部分。如果在初始页面加载时服务器上已经有数据,则无需处理客户端异步加载,并且不会减慢初始请求的速度。

    Jinja2对此有一个建议,即在构建模板时将对象传递到上下文中。我不知道你为什么认为这很难看,或者至少比使用Jinja2只为HTML模板更难看。以下是他们的建议(见):

    
    doSomethingWith({{user.username | tojson | safe}});
    

    正如其他人所建议的,如果您愿意,可以使用RESTful服务,但在不了解更多应用程序的情况下,我不相信这会使您的代码更干净。根据我的经验,在初始页面加载中嵌入一些数据是一种相当常见的做法,可以简化应用程序的其余部分。如果在初始页面加载时服务器上已经有数据,则无需处理客户端异步加载,并且不会减慢初始请求的速度。

    Jinja2对此有一个建议,即在构建模板时将对象传递到上下文中。我不知道你为什么认为这很难看,或者至少比使用Jinja2只为HTML模板更难看。以下是他们的建议(见):

    
    doSomethingWith({{user.username | tojson | safe}});
    

    正如其他人所建议的,如果您愿意,可以使用RESTful服务,但在不了解更多应用程序的情况下,我不相信这会使您的代码更干净。根据我的经验,在初始页面加载中嵌入一些数据是一种相当常见的做法,可以简化应用程序的其余部分。如果在初始页面加载时服务器上已经有数据,则无需处理客户端异步加载,并且不会减慢初始请求的速度。

    Jinja2对此有一个建议,即在构建模板时将对象传递到上下文中。我不知道你为什么认为这是丑陋的,或者至少比使用J
    <script type=text/javascript>
        doSomethingWith({{ user.username|tojson|safe }});
    </script>