2012-06-18 21 views
0

Используя Google App Engine, я пытаюсь выполнить urlfetch файл gzip с URL-адреса, который содержит один файл csv.google app engine urlfetch gzip для строки

В конечном счете, я хотел бы выводить содержимое файла csv на мою веб-страницу.

У меня есть следующий код на данный момент:

#!/usr/bin/env python 
import webapp2 

from google.appengine.api import urlfetch 

class Test(webapp2.RequestHandler): 
    def get(self): 
    self.response.headers['Content-Type'] = 'text/plain' 
    url = *this_is_my_url* 
    test = urlfetch.fetch(url, deadline=25) 
    self.response.out.write(test.content) 

app = webapp2.WSGIApplication([ 
    ('/test', Test) 
], debug=True) 

Вместо печати содержимого файла на экран, он просит меня, чтобы загрузить их на местном уровне. Как остановить эту локальную загрузку и вместо этого распечатать непосредственно на экране/веб-странице?

+0

выглядит как некорректный браузер для меня, попробуйте использовать другие браузеры. –

+0

Возможно, вы захотите добавить заголовок 'Content-disposition: inline', хотя теоретически это не обязательно. – geoffspear

+0

Я пытался с Firefox, Google Chrome и Internet Explorer, и каждый загружал файл, а не печатал его на экран. – user1464409

ответ

2

Посмотрите, работает ли это.

#!/usr/bin/env python 
import webapp2 
from google.appengine.api import urlfetch 
import gzip 
import StringIO 

class Test(webapp2.RequestHandler): 
    def get(self): 
    self.response.headers['Content-Type'] = 'text/plain' 
    url = *this_is_my_url* 

    test = urlfetch.fetch(url, deadline=25) 


    f = StringIO.StringIO(test.content) 
    c = gzip.GzipFile(fileobj=f) 
    content = c.read() 

    self.response.out.write(content) 

app = webapp2.WSGIApplication([ 
    (r'/', Test) 
], debug=True) 
+0

Ты суперзвезда Ян! Это сработало отлично. Большое спасибо. – user1464409

Смежные вопросы