zoukankan      html  css  js  c++  java
  • web(八)--angular从cgi获取数据

    一. cgi用前面小节的req_resp.cpp, 这里略去cgi的编译和部署.

    二. 下面的几个文件在同一个目录.

    1. index.py 增加两处:

    (1)

      

     (r"/index.py/angularjs_cgi", AngularjsCgiHandler)

    (2) 

    class AngularjsCgiHandler(tornado.web.RequestHandler):
        def get(self):
            self.render("angularjs_cgi.html")


    import tornado.ioloop
    import tornado.web
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("Hello, world, this is tornado test!")
    
    class StoryHandler(tornado.web.RequestHandler):
        def get(self, story_id):
            self.write("You requested the story " + story_id)
    
    class TemplateHandler(tornado.web.RequestHandler):
        def get(self):
            items = ["Item 1", "Item 2", "Item 3"]
            self.render("template.html", title="My title", items=items)
    
    class AngularjsTestHandler(tornado.web.RequestHandler):
        def get(self):
            self.render("angularjs_test.html")
    
    class AngularjsCgiHandler(tornado.web.RequestHandler):
        def get(self):
            self.render("angularjs_cgi.html")
    
    application = tornado.web.Application([
        (r"/", MainHandler),
        (r"/index.py", MainHandler),
        #(r"/story/([0-9]+)", StoryHandler),
        (r"/template", TemplateHandler),
        (r"/index.py/template", TemplateHandler),
        (r"/index.py/angularjs_test", AngularjsTestHandler),
        (r"/index.py/angularjs_cgi", AngularjsCgiHandler),
    ])
    
    if __name__ == "__main__":
        application.listen(8888)
        tornado.ioloop.IOLoop.instance().start()

    2. angularjs_cgi.html

    <!DOCTYPE html>
    <html>
    <body>
    <h2>angularjs_cgi.html</h1>
    <h2>angularjs get data from cgi with https</h2>
    
    <div ng-app="angularjs_cgi_app" ng-controller="angularjs_cgi_ctrl">
        <p>data from angularjs:||data_from_angularjs|| </p>
        <p>data from cgi:||data_from_cgi|| </p>
    </div>
    
    </body>
    </html>
    
    <script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
    <script src="angularjs_cgi.js"></script>

    3. angularjs_cgi.js      angular利用$http从cgi获取数据, $http的使用google之.

    var app = angular.module("angularjs_cgi_app", []);
    
    app.config(function($interpolateProvider) {
      $interpolateProvider.startSymbol('||');
      $interpolateProvider.endSymbol('||');
    });
    
    app.controller("angularjs_cgi_ctrl", function($scope, $http, $timeout, $interval) {
    
        $scope.data_from_angularjs = 1234;
    
        // data from cgi
        $scope.data_from_cgi = '';
        $scope.get_data = function(){
            $http({
            method:"GET",
            url:"/req_resp.cgi?hello=1",
            data:{
                action : "this_is_action",
                login_name : "zhangsan",
                }
            }).success(function(data){
                $scope.data_from_cgi = data;
            }).error(function(){
                alert('get data from cgi err!');
                setTimeout($scope.get_data(), 4000);
            });
        }
        $scope.get_data();
    });

    三. http://localhost/angularjs_cgi访问

    浏览器显示如下(去除格式了, 其中data_from_cgi即req_resp.cpp返回的内容):

    angularjs_cgi.html

    angularjs get data from cgi with https

    data from angularjs:1234

    data from cgi:<H4>PID: 4072</H4> <H4>Request Number: 17</H4> <H4>Request Environment</H4> QUERY_STRING=hello=1

  • 相关阅读:
    线程join
    java线程 WaitAndNotify
    java线程死锁
    多线程并发的3个特性
    常用字符串搜索算法介绍
    [原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法
    [原创]字符串多模匹配算法之AC自动机理解心得
    客户端javascript访问服务器控件的方法
    [总结]C++实现一个限制对象实例个数的类
    [原创]我的北大ACM POJ1001解答
  • 原文地址:https://www.cnblogs.com/helloweworld/p/4127038.html
Copyright © 2011-2022 走看看