一. 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 ="//HdhCmsTestw3cschool.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
?
查看更多关于web(八)--angular从cgi获取数据的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222684