HTML输出问题

时间:2012-10-01 01:32:43

标签: python html google-app-engine jinja2

我正在使用谷歌应用引擎中的python和jinja2编写一个网站。我的html页面在页面上显示:

Status: 200
Content-Type: text/html;
charset=utf-8
Cache-Control: no-cache
Content-Length: 432

知道这个问题来自哪里?另外,为什么{{initial_city}}没有显示结果?

我的main.py脚本是:

from google.appengine.ext import db
from google.appengine.api import memcache
from models import Deal
import os
import webapp2
import jinja2


#databasestuff
deal = Deal(title='Hello',
        description='Deal info here',
        city='New York')
deal.put()
print deal


jinja_environment = jinja2.Environment(autoescape=True,
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))

class MainPage(webapp2.RequestHandler):
def get(self):
    template = jinja_environment.get_template('index.html')
    self.response.out.write(template.render())


class DealHandler(webapp2.RequestHandler):
def get(self):
    def get_deals(choose_city, update=False):
        key = str(choose_city)
        all_deals = memcache.get(key)
        return all_deals

    choose_city = self.request.get('c')
    try:
        initial_city = str(choose_city)
        choose_city = initial_city
    except ValueError:
        initial_city = 0
        choose_city = initial_city


    template = jinja_environment.get_template('deal.html')
    self.response.out.write(template.render())




class ContentHandler(webapp2.RequestHandler):
def get(self):
    template = jinja_environment.get_template('content.html')
    self.response.out.write(template.render())

app = webapp2.WSGIApplication([('/', MainPage),
                           ('/deal', DealHandler),
                           ('/content', ContentHandler)],
                          debug=True)

我的html页面:

<!DOCTYPE html>
<html>
  <head>
    <title>
      Deallzz: Chosen City: {{ initial_city }}
    </title>
  </head>
  ...

3 个答案:

答案 0 :(得分:3)

要显示initial_city,请使用render方法将变量传递给模板:

self.response.out.write(template.render(initial_city = initial_city))

答案 1 :(得分:2)

导致问题的“印刷协议”。它在任何response.write之前输出

答案 2 :(得分:1)

这只是HTML页面的headers。您应该提供更多您正在尝试的信息/代码。