我不知道为什么会这样,但我已经尝试了很多,但我仍然在浏览器中获得相同的输出.. 我在这里运行此代码我试图继承我的另一个类的句柄类实例..我在Chrome浏览器中使用谷歌应用程序引擎运行我的代码..整个过程类似于由udacity讲师显示其他rot13代码..
import os
import codecs
import webapp2
import jinja2
#from check import valid_month
#from check import valid_year
#from check import valid_day
template_dir = os.path.join(os.path.dirname(__file__),'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
autoescape= True)
class Handler(webapp2.RequestHandler):
"""docstring for Handler"""
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self,template,**kw):
self.write(self.render_str(template, **kw))
class Secondhandler(Handler):
def get(self):
key = self.request.get_all("name")
name = ''.join(key)
new = codecs.encode(name, 'rot13')
self.render("shopping_list.html", name = new )
app = webapp2.WSGIApplication([
('/',Handler)
], debug=True)
你可以看到我的第二个处理程序名为secondhandler,它继承自其名为handler的父类。 但是当我在浏览器中查看它时会抛出错误,我的购物清单如下
<form>
<h2>tell us what you like</h2>
<br>
<textarea name='name' type='text'>{{name}}</textarea>
<br>
<br>
<button>add</button>
</form>
最重要的是,我不认为有任何缩进问题,因为当我通过使用整个get in main主处理程序运行我的代码时它工作正常.. 但仍然我无法使用secondhanlder ..继承我的代码没有类secondhandler ..它打印和工作rot13很好..
import os
import codecs
import webapp2
import jinja2
#from check import valid_month
#from check import valid_year
#from check import valid_day
template_dir = os.path.join(os.path.dirname(__file__),'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
autoescape= True)
class Handler(webapp2.RequestHandler):
"""docstring for Handler"""
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self,template,**kw):
self.write(self.render_str(template, **kw))
def get(self):
key = self.request.get_all("name")
name = ''.join(key)
new = codecs.encode(name, 'rot13')
self.render("shopping_list.html", name = new )
#class Secondhandler(Handler):
app = webapp2.WSGIApplication([
('/',Handler)
], debug=True)
答案 0 :(得分:3)
看起来你没有注册SecondHandler
:
app = webapp2.WSGIApplication([
('/',Handler)
], debug=True)
当您将该区块中的Handler
更改为SecondHandler
时会发生什么?