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

  • 相关阅读:
    Problem : [NOIP2015普及组]扫雷游戏
    Problem : [NOIP2014普及组]珠心算测验
    Problem : [Noip2005]谁拿了最多奖学金
    Problem : [Noip2008]火柴棒等式
    Problem : [Noip2010普及组]导弹拦截
    Problem : [NOIP2013普及组]计数问题
    Problem : [Noip2003]麦森数
    Problem: [Noip2008] 笨小猴
    Problem : 暴力摩托
    Problem : [Usaco2017 Dec]Blocked Billboard
  • 原文地址:https://www.cnblogs.com/helloweworld/p/4127038.html
Copyright © 2011-2022 走看看