2015-01-09 2 views
0

플레이어 이미지를 표시하라는 지시가 있습니다. 플레이어 id를 작은 파이썬 스크립트로 보내어 id가있는 이미지가 ajax 호출을 통해 존재하는지 확인합니다. 이미지가 있으면 이름을 반환해야합니다.IIS7의 AngularJS 앱용 서버 측 Python 스크립트

아이디를 정면에서 스크립트로 보내고 이미지 이름을 찾는 데 성공했습니다. 문제는 파일 이름을 올바르게 반환하지 못하는 것입니다. 오류가 발생합니다 :

HTTP 오류 502.2 - 잘못된 게이트웨이 지정된 CGI 응용 프로그램이 전체 HTTP 헤더 집합을 반환하지 않아 잘못 처리되었습니다. 반환 된 헤더는 "HCP_23108_SmithKen.png"입니다. - 잘못된 게이트웨이 HTTP 헤더의 완전한 세트를 반환하지 않는 방법으로 추문 지정한 CGI 응용 프로그램

HTTP 오류 502.2 :

내가 헤더를 추가하는 경우

, 난 여전히 오류가 발생하고있다. 반환 된 헤더는 "Content-type : text/html; charset = utf-8 HCP_23108_SmithKen.png"입니다.

내가했던 Python on IIS: how?

내 질문에 어떻게 아약스는 파이썬 프레임 워크없이 제대로 GET 요청을 수행 할 수 있습니다를 수행하여 IIS7의 처리기 매핑에 사용 가능 CGI? 감사합니다

지침 :

myDirectives.directive('headshot', function ($http) { 

return { 
    restrict: 'AE', 
    scope: { 
     lastProID: '@lastproid' 
    }, 
    template: '<img ng-src="{{proImg}}" class="headshot">', 
    link: function (scope, element, attrs) { 

     //scope.id = scope.lastProID; 
     attrs.$observe('lastproid', function (id) { 

      scope.id = id; 
      var src = 'img/bios/nophoto.png'; 
      scope.proImg = (src); 


      var url = 'bioPhoto/bioPhoto.py'; 
      $http.get(
        url, 
        { 
         params: {'id': scope.id} 
        }) 

        .success(function (data) { 
         var src = 'img/bios/' + data; 
         scope.proImg = (src); 
        }) 
        .error(function (error) { 
        }); 
     }); 
    } 
}; 
}); 

bioPhoto.py 스크립트 :

import fnmatch 
import os 

rootPath = './img/bios/' 

query_string=os.environ["QUERY_STRING"] 
id=query_string.split("id=",1)[1] 
id=id.strip() 

pattern = "*" + id + "*" 

print ('Content-type: text/html; charset=utf-8') 

for root, dirs, files in os.walk(rootPath): 
    for filename in fnmatch.filter(files, pattern): 
     filename=filename.strip() 
     print(filename) 

답변