405方法不允许 - google-app-engine问题

时间:2016-10-10 16:54:41

标签: python-2.7 google-app-engine

我不知道为什么会这样,但我已经尝试了很多,但我仍然在浏览器中获得相同的输出.. 我在这里运行此代码我试图继承我的另一个类的句柄类实例..我在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)

1 个答案:

答案 0 :(得分:3)

看起来你没有注册SecondHandler

app = webapp2.WSGIApplication([
 ('/',Handler)
   ], debug=True)

当您将该区块中的Handler更改为SecondHandler时会发生什么?