【问题标题】:405 Method Not Allowed- google-app-engine issue405 方法不允许 - google-app-engine 问题
【发布时间】:2016-10-10 16:54:40
【问题描述】:

我不知道为什么会这样,但我已经尝试了很多,但我仍然在我的浏览器中得到相同的输出.. 我在这里运行此代码我正在尝试将句柄类实例继承到我的另一个类..我在 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.. 的父类。 但是当我在浏览器中查看它时会引发错误,我的购物清单.html 如下

        <form>
           <h2>tell us what you like</h2>
           <br>
           <textarea name='name' type='text'>{{name}}</textarea>
           <br>
           <br>
          <button>add</button>
         </form>

最重要的是,我认为没有任何缩进问题,因为当我通过使用整个 get 仅在主处理程序中运行我的代码时,它工作正常.. 但我仍然无法使用 secondhandler .. 继承我的代码没有类 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)

【问题讨论】:

    标签: python-2.7 google-app-engine


    【解决方案1】:

    你好像没有注册SecondHandler

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

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

    【讨论】:

    • 哦,对不起,我的错误....谢谢您的回复。那真的很愚蠢......仍然认为......它工作正常
    • 别担心! :) 发生在我们所有人身上。您可能想将此标记为答案!
    猜你喜欢
    • 2010-11-20
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多