python, html, cherrypy

python, html, cherrypy

Postby Brahim » Sun Oct 13, 2013 5:42 am

Bonjour!

j'ai un probleme qui me casse le tete depuis un grand moment.

J'ai un formulaire html.
Code: Select all
#####
[*ajout_emploi*]
<div class="contenu_enreg">
    <div><img src="annexes/vide.png"></div>
    <form class="box1 login" method="post" action="ajouterEmploi">
    <img src="annexes/vide.png">
    <p>%s</p><br/>
        <fieldset class="boxBody">
          <label>Nom de la classe</label> <select name="nomc" required>%s</select>
     <label>Jour</label> <select name="jour" required>
      <option>Lundi</option>
      <option>Mardi</option>
      <option>Mercredi</option>
      <option>Jeudi</option>
      <option>Vendredi</option>
      <option>Samedi</option>
</select>
          <label>7h:30-8h:20</label> <input type="text" name="heur1" value ="%s" class="only_alpha_num" required>                         
          <label>8h:20-9h:20</label> <input type="text" name="heur2" value ="%s" class="only_alpha_num" required>
     <label>9h:20-10h:10</label> <input type="text" name="heur3" value ="%s" class="only_alpha_num" required>
     <label>10h:10-11h:05</label> <input type="text" name="heur4" value ="%s" class="only_alpha_num" required>
     <label>11h:05-11h:30</label> <input type="text" name="heur5" value ="%s" class="only_alpha_num" required>
     <label>11h:30-12h:20</label> <input type="text" name="heur6" value ="%s" class="only_alpha_num" required>
     <label>12h:20-13h:15</label> <input type="text" name="heur7" value ="%s" class="only_alpha_num" required>
      <label>13h:15-14h:00</label> <input type="text" name="heur8" value ="%s" class="only_alpha_num" required>
     <label>14h:00-15h:00</label> <input type="text" name="heur9" value ="%s" class="only_alpha_num" required>
      <label>15h:00-16h:00</label> <input type="text" name="heur10" value ="%s" class="only_alpha_num" required>
     <label>16h:00-17h:00</label> <input type="text" name="heur11" value ="%s" class="only_alpha_num" required>                     
        </fieldset>     
        <footer>                   
         <input type="reset" class="btnReset" value="Effacer">
          <input type="submit" class="btnLogin" value="Inserer">             
        </footer>
    </form>           
</div>


et une fonction en python qui me permet d'inserer dans la base Mysql:
Code: Select all
def ajouterEmploi(self,nomc="",jour="",heur1="",heur2="",heur3="",heur4="",heur5="",heur6="",heur7="",heur8="",heur9="",heur10="",heur11=""):   
        print(nomc)
        if(cherrypy.session.has_key("nom") and cherrypy.session.has_key("priorite")):
            if(cherrypy.session["nom"] != ""):
                emp = Emploi(nomc,jour,heur1,heur2,heur3,heur4,heur5,heur6,heur7,heur8,heur9,heur10,heur11)
                emp.ajoutBD() 
                print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaj")
                print(nomc)
                #if(existEmploi(nomc,jour)==1):
                if(int(cherrypy.session["priorite"]) == 20):
                    return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["ajout_emploi"])%("",listeDesClasse(),"","","","","","","","","","","")))
                else:
                    return self.accueil_Administrateur()
                #else:   
                   # emp.ajoutBD() 
                   # if(int(cherrypy.session["priorite"]) == 20):
                      #  return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%(Glob.html["stat"], Glob.html["groupe"],cherrypy.session["nom"], (Glob.html["notification1"])%"Une journée d'emplois ajouté avec cuccès"))             
                    #else:           
                      #  return self.accueil_Admin((Glob.html["acceuilAdministrateur"])%("", "",cherrypy.session["nom"], (Glob.html["notification1"])%"Une journée d'emplois ajouté avec cuccès"))             
            else:
                return self.accueil_Administrateur()
        else:
            return self.accueil_Administrateur()
    ajouterEmploi.exposed =True

dont la fonction emp.ajoutBD() fait suivant:
Code: Select all
def ajoutBD(self):
        conn = connexionBD()
        cursor = conn.cursor ()
        cursor.execute("SELECT idClass FROM classe where nomClass= %s", self.__nomClass )
        row = cursor.fetchone()
        id_class = row[0]     
        cursor.execute("""INSERT INTO emploi_du_temps (idClass,jour,7h30,8h20,9h20,10h10,11h05,11h30,12h20,13h15,14h00,15h00,16h00 ) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""", (id_class,self.__jour,self.__heur1,self.__heur2,self.__heur3,self.__heur4,self.__heur5,self.__heur6,self.__heur7,self.__heur8,self.__heur9,self.__heur10,self.__heur11))   
        cursor.close()
        conn.commit()
        conn.close()


et m'affiche cette erreur:
Code: Select all
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "acceuil.py", line 1249, in ajouterEmploi
    emp.ajoutBD()
  File "/home/brahim/Bureau/workspace_cherrypy/Emploi.py", line 27, in ajoutBD
    id_class = row[0]
TypeError: 'NoneType' object has no attribute '__getitem__'



Remarques:
-j'ai constaté que les valeurs de champs ne sont pas pas recuperer, c'est pourquoi on arrive pas à recuperer id_class par ce que le nomclass est vide
-parfois par quel miracle il recupere et ça passe, mais quand je me deconnecte et je reviens ça ne passe pas.

Donc je vous demandes de m'expliquer si possible les causes et une correction. Je serai tres reconnaissant.

Merci d'avance.
Last edited by micseydel on Sun Oct 13, 2013 5:56 pm, edited 1 time in total.
Reason: First post lock.
Brahim
 
Posts: 2
Joined: Sun Oct 13, 2013 5:14 am

Re: python, html, cherrypy

Postby stranac » Sun Oct 13, 2013 9:48 am

This is where the error happens:
Code: Select all
cursor.execute("SELECT idClass FROM classe where nomClass= %s", self.__nomClass )
row = cursor.fetchone()
id_class = row[0]

It looks like the select statement is selecting no rows, so cursor.fetchone() is returning None.
Then you're trying to index that None, which raises an exception.
Friendship is magic!

R.I.P. Tracy M. You will be missed.
User avatar
stranac
 
Posts: 1209
Joined: Thu Feb 07, 2013 3:42 pm

Re: python, html, cherrypy

Postby Brahim » Sun Oct 13, 2013 8:39 pm

effectivement c'est là que le probleme, parcequ'il n'arrive pas à recuperer la valeur "self.__nomClass" pourtant ce champs n'est pas vide car c'est un champs "select"
Brahim
 
Posts: 2
Joined: Sun Oct 13, 2013 5:14 am


Return to Web Development

Who is online

Users browsing this forum: No registered users and 2 guests