python:name' self'没有定义

时间:2016-04-20 18:02:21

标签: python google-app-engine jinja2

我使用以下代码得到了标题错误。有谁知道如何解决这一问题?我已经检查了.py文件中的标签和空格,甚至尝试更改var的名称,它没用。先谢谢

    private void Form_Load(object sender, EventArgs e){

        Uri url = new Uri("http://google.com");
        webBrowser1.navigate(url);

   }

2 个答案:

答案 0 :(得分:3)

问题在于这一行:

self.response.write(template.render(template_values));

它在类定义中,但不在方法内(第一个参数是self。所以self在这里不知道...

您必须将其缩进才能成为post方法的一部分:

def post(self):
    ...
    template_values = { 
        ...
    }

    template_values = JINJA_ENVIRONMENT.get_template("answer.html")
    self.response.write(template.render(template_values));

答案 1 :(得分:1)

首先,行self.response.write(template.render(template_values));不能超出任何函数,因为那里没有'self'变量。

其次,这是一个猜测,基于你覆盖template_values变量的事实,你可能希望你的post方法是这样的(注意最后两行缩进并且变量名称已更改):

def post(self):
    self.load_input()
    self.km=str(self.km)
    self.consmed=str(self.consmed)
    self.tiempo=str(self.tiempo)
    velMed=(self.km)/(self.tiempo)
    self.velMed=str(velMed)
    consTot=(self.km)/((self.consmed)*4)
    self.consTot=str(consTot)

    template_values = { 
    'kmToStr':self.km,
    'consmedToStr':self.consmed,
    'tiempoToStr':self.tiempo,
    'velMedToStr':self.velMed,
    'consTotToStr':self.consTot, 
    }

    template = JINJA_ENVIRONMENT.get_template("answer.html") # Do not overwrite template_values, and use correct indentation
    self.response.write(template.render(template_values));