2012-11-30 2 views
0

요청한 국가의 Flag 이미지를 렌더링하는 간단한 프로그램을 작성했습니다. 이미지가 있는지 확인하려면 먼저 확인하고 싶습니다. 그러나 다음과 같은 예외가 발생합니다. HTTPException : URL에서 HTTP 응답을 기다리는 동안 마감 시간이 초과되었습니다. http://localhost:8087/images/flag_images/Flag_of_Nepal.svghttplib 내부 서버에 대한 호출

이는 시간 제한에 설정 한 값에 관계없이 발생합니다. 동일한 포트로 내부 서버에 전화를 걸 수 있습니까? 나는 GAE를 사용하고있다.

class backbone(Handler): 
def render_front(self): 
    User_id = self.request.cookies.get('user_id') 
    if User_id: 
     Valid_User = check_secure_val(User_id) 
     if Valid_User: 
      p = UserAccount.get_by_id(int(Valid_User)) 
      User = p.User 
     else: 
      User = "" 
    else: 
     User = "" 
    self.render("backbone.html", image = "") 


def get(self): 
    self.render_front() 

def post(self): 
    a = self.request.get('country') 
    image = self.exists('localhost', 8087, ("/images/flag_images/Flag_of_%s.svg" %a)) 
    if image: 
     self.render('backbone.html', image = '<img src = "/images/flag_images/Flag_of_%s.svg" alt="" width="60" height="45"/>' % a)  
    else: 
     self.render('backbone.html', image = '<img src = "/images/flag_images/NoFlag.svg" alt="" width="60" height="45"/>' % a)  


def exists(self, site, port, path): 
    conn = httplib.HTTPConnection(site, port, timeout= 40) 
    conn.request('GET', path) 
    response = conn.getresponse() 
    conn.close() 
    return response.status == 200 

답변

0

GAE와 같은 로컬 호스트는 사용할 수 없습니다. 외부 URL 참조가 필요합니다. 로컬 컴퓨터에서 GAE로 이미지를 가져 오려면 라우터에서 해당 포트를 열어야합니다 (http://portforward.com/ 참조). URL에 https://www.google.com/?q=what+is+my+ip의 IP 주소를 연결하십시오. 예 : 나를 위해 그것은 비슷한 것일 것입니다 http://67.84.162.157:8000/images/usa.svg

+0

감사합니다. 정적 파일의 존재 여부를 확인하는 다른 방법이 있는지 확인하는 다른 방법이 있습니까? –

관련 문제