2016-10-10 1 views
0

Je ne sais pas pourquoi cela se produit mais j'ai essayé beaucoup mais je suis toujours obtenir la même sortie dans mon navigateur .. im en cours d'exécution ce code ici j'essaie d'hériter de la gérer des instances de classe à mon autre classe .. je cours mon code à l'aide du moteur Google App dans le navigateur chrome .. processus est similaire comme indiqué par un moniteur de Udacity autre le code rot13 ..405 Méthode non autorisée- google-app-engine issue

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) 

comme vous pouvez le voir mon deuxième gestionnaire est nommé secondhandler qui hérite de sa classe parente nommé handler .. mais quand je vois ceci dans mon navigateur il jette une erreur, ma liste de courses.html est comme suit

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

chose la plus importante est que je ne pense pas que tht il y a un problème de retrait comme quand je lance mon code en utilisant l'ensemble get en un gestionnaire principal, il fonctionne très bien .. mais je ne peux pas utiliser secondhanlder. . Heres mon code sans classe secondhandler .. et il imprime et fonctionne bien 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) 

Répondre

3

il ne semble pas que vous avez enregistré SecondHandler:

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

Wh à se produit lorsque vous modifiez Handler dans ce bloc à SecondHandler à la place?

+0

ohh srry mymistake .... merci de votre réponse. c'était vraiment bête ... encore, ça fonctionne ... ça marche bien –

+0

Pas de soucis! :) Ça nous arrive à tous. Vous pourriez vouloir marquer ceci comme réponse! –