• 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

  • 相关阅读:
    错误日志记录
    解决连接Oracle 11g报ORA-01034和ORA-27101的错误
    windows和linux 下将tomcat注册为服务
    ORA-12170: TNS:Connect timeout occurred
    ubuntu修改时区和时间的方法
    SecureCRT中文显示乱码的解决方法
    修復 “Failed to bring up eth0″ in Ubuntu virtualbox
    HDU 1358 Period
    rcp(插件开发)点击按钮出现 The chosen operation is not enabled 解决办法
    CRM上线之路 走上了CRM实施顾问-第12天上班 -第三周
  • 原文地址:https://www.cnblogs.com/helloweworld/p/4127038.html
Copyright © 2020-2023  润新知