python:name';自我';没有定义
我用下面的代码得到了title的错误。有人知道如何解决这个问题吗?我已经检查了.py文件上的制表符和空格,甚至尝试更改var的名称,但都没有用。提前谢谢python:name';自我';没有定义,python,google-app-engine,jinja2,Python,Google App Engine,Jinja2,我用下面的代码得到了title的错误。有人知道如何解决这个问题吗?我已经检查了.py文件上的制表符和空格,甚至尝试更改var的名称,但都没有用。提前谢谢 import os import jinja2 import webapp2 JINJA_ENVIRONMENT = jinja2.Environment( loader=jinja2.FileSystemLoader(os.path.dirname(__file__)), extensions=["jinja2.ext.au
import os
import jinja2
import webapp2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=["jinja2.ext.autoescape"],
autoescape=True)
class ConsumoHandler(webapp2.RequestHandler):
def load_input(self):
self.km=float(self.request.get("edKm","edKm"))
self.consmed=float(self.request.get("edCons","edCons"))
self.tiempo=float(self.request.get("edTiempo","edTiempo"))
self.velMed=0
self.consTot=0
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_values = JINJA_ENVIRONMENT.get_template("answer.html")
self.response.write(template.render(template_values));
app = webapp2.WSGIApplication([
('/calcu', ConsumoHandler)
], debug=True)
问题是这一行:
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));
问题是这一行:
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));
首先,行
self.response.write(template.render(template_values));
不能在这里的任何函数之外,因为那里没有'self'
变量
其次,这是一个猜测,基于覆盖template\u值
变量的事实,您可能希望post方法类似(注意最后两行缩进并更改了变量名称):
首先,行
self.response.write(template.render(template_values));
不能在这里的任何函数之外,因为那里没有'self'
变量
其次,这是一个猜测,基于覆盖template\u值
变量的事实,您可能希望post方法类似(注意最后两行缩进并更改了变量名称):
self.response.write(template.render(template_values));
不是在定义类时执行的方法的一部分。可能是缩进混淆了?看起来像是在混合制表符和空格。请重新配置编辑器,使其仅使用空格进行缩进,然后将剩余的空格转换为制表符。问题:为什么(self.response.write(template.render(template_值));)包含尾随分号?除非您希望在同一行上计算多个内容,否则不需要该分号。self.response.write(template.render(template_值));
不是在定义类时执行的方法的一部分。可能您的缩进混淆了?看起来您是在混合制表符和空格。请重新配置编辑器,使其仅使用空格进行缩进,然后将剩余空格转换为制表符。问:为什么(self.response.write(template.render(template_值));)包含尾随分号?除非您希望在同一行中计算多个内容,否则不需要。回答得很好!他可能打算在post()中同时执行两行代码。也许更新你的答案以说明!@ThelazyScript是的,添加了它。回答得很好!他可能打算在post()中执行两行代码。也许更新你的答案以说明!@ThelazyScript是的,添加了它。