2011-04-06 138 views
2

您好我想配置我的MIME类型:配置MIME类型

的MIME类型的KML文件是

* application/vnd.google-earth.kml+xml 

我怎样才能做到这一点与谷歌应用程序引擎?我生成一个模板,看起来像这样的KML:更新我尝试设置MIME类型如下面的代码

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
<Document>{% for article in articles %}{% if article.geopt %} 
<Placemark><name></name> 
<description> 
<![CDATA[{% if article.kmluri2view %}<img src="http://{{host}}/images/{{ article.kmluri2view.key.id }}.jpg">{% endif %}<a href="http://{{host}}/{{article.key.id}}"> {{ article.title }} </a><br/>{{article.text}}]]></description><Point><coordinates>{{article.geopt.lon|floatformat:2}},{{article.geopt.lat|floatformat:2}}</coordinates></Point> 
</Placemark>{% endif %}{% endfor %} 
</Document> 
</kml> 

。我如何验证它的工作原理?

class KMLHandler(webapp.RequestHandler): 
    def get(self):    
     start=datetime.datetime.now()-timedelta(days=10)#vary 
     host = os.environ.get("HTTP_HOST", os.environ["SERVER_NAME"])  
     logging.debug('host '+host)     
     count = int(self.request.get('count')) if not self.request.get('count')=='' else 1000 

     from google.appengine.api import memcache 
     memcache.flush_all() 
     memcache_key = "ads" 
     data = memcache.get(memcache_key) 
     if data is None: 
      a= Ad.all().filter("modified >", start).filter("url IN", ['www.koolbusiness.com']).filter("published =", True).order("-modified").fetch(count) 
      memcache.set("ads", a) 
     else: 
      a = data 
     dispatch='templates/kml.html' 
     template_values = {'a': a , 'request':self.request, 'host':host} 
     path = os.path.join(os.path.dirname(__file__), dispatch) 
     self.response.headers['Content-Type'] = 'application/vnd.google-earth.kml+xml' 
     self.response.out.write(template.render(path, template_values)) 
+0

您正在使用哪种框架? – systempuntoout 2011-04-06 18:37:07

+0

我用纯webapp运行它只是分配一个实体列表到模板。如果你建议一个框架,你是最欢迎这样做的。 – 2011-04-09 15:46:04

回答

3

只需在对所需mimetype的响应中设置Content-Type标题即可。例如,如果您使用的是webapp,则可以这样做:

self.response.headers['Content-Type'] = 'application/vnd.google-earth.kml+xml' 
+0

好的,谢谢我尝试像上面粘贴,我会检查它是如何工作的 – 2011-04-09 15:53:43