IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Probleme avec wamp et mySQLdb lors de requetes MYSQL [Python 2.X]


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 21
    Points
    21
    Par défaut Probleme avec wamp et mySQLdb lors de requetes MYSQL
    Bonjour,

    J'ai une page web qui doit m'afficher une liste de noms (un explorateur de fichierstyle iphone en gros), j'ai installé wamp et le module wsgi pour coder ma partie serveur en python
    Le tout discute par l’intermédiaire de requêtes AJAX et d'objets JSON. Lors de tests de l'interface client-serveur avec des valeurs en carton j'arrivais a afficher et a parcourir les fichiers.

    Maintenant je dois récupérer des valeurs dans ma base de données j'ai créé une interface serveur bdd en python. Pour cela j'ai téléchargé le module mysqldb pour python. Cette interface fonctionne parfaitement dans une console python (2.7).

    Le probleme arrive lorsque je lance ma page web, au debut j'ai eu des problemes d'importations de fichiers python , puis maintenant mon log apache me donne cette erreur:
    mod_wsgi (pid=5024): Exception occurred processing WSGI script 'C:/Users/Admin/work_cordova/vmobile/www/wsgi-scripts/myapp.wsgi'., referer: http://localhost/html/zones.html
    Traceback (most recent call last):, referer: http://localhost/html/zones.html
    File "C:/Users/Admin/work_cordova/vmobile/www/wsgi-scripts/myapp.wsgi", line 156, in application, referer: http://localhost/html/zones.html
    return doGet(environ, start_response), referer: http://localhost/html/zones.html
    File "C:/Users/Admin/work_cordova/vmobile/www/wsgi-scripts/myapp.wsgi", line 124, in doGet, referer: http://localhost/html/zones.html
    return doDataNodeNavigation(environ, start_response), referer: http://localhost/html/zones.html
    File "C:/Users/Admin/work_cordova/vmobile/www/wsgi-scripts/myapp.wsgi", line 25, in doDataNodeNavigation, referer: http://localhost/html/zones.html
    l = getDataNodeChildren(parent_id), referer: http://localhost/html/zones.html
    File "C:\\Users\\Admin\\work_cordova\\vmobile\\www\\wsgi-scripts\\interface_py_sql.py", line 19, in getDataNodeChildren, referer: http://localhost/html/zones.html
    cur.execute(sql), referer: http://localhost/html/zones.html
    File "C:\\Python27\\lib\\site-packages\\MySQLdb\\cursors.py", line 202, in execute, referer: http://localhost/html/zones.html
    self.errorhandler(self, exc, value), referer: http://localhost/html/zones.html
    File "C:\\Python27\\lib\\site-packages\\MySQLdb\\connections.py", line 36, in defaulterrorhandler, referer: http://localhost/html/zones.html
    raise errorclass, errorvalue, referer: http://localhost/html/zones.html
    ProgrammingError: (1064, "Erreur de syntaxe pr\\xe8s de '['0']' \\xe0 la ligne 1"), referer: http://localhost/html/zones.html
    L'erreur finale m'indique erreur de syntaxe pres de '['0']' mais a aucune ligne 1 de mes fichiers j'ai un '['0']'

    voici mon code python de la fonction getDataNodeChildren qui doit recuperer des objets datanodes a partir de l'id d'un autre datanode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def getDataNodeChildren(parentid):
        sql = "SELECT * FROM datanodes where par_id = {}".format(parentid)
        cur.execute(sql)
        dndList=[]
        for row in cur.fetchall() :
            #dnd prototype : id, type_id, label, parent_id
            dnd = DataNode( row[0], row[3], row[2], parentid)  
            dndList.append(dnd)
        return dndList
    voici le constructeur et les methodes de Datanode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class DataNode:
        def __init__(self, dnd_id, dnd_type_id, dnd_label,dnd_parent_id):
            self.dnd_id = dnd_id
            self.dnd_type_id = dnd_type_id
            self.dnd_label = dnd_label
            self.dnd_parent_id = dnd_parent_id
     
        def toString(self):
            strng = "id : %i, label : %s, type : %i, parent id :%i" % (self.dnd_id,self.dnd_label,self.dnd_type_id,self.dnd_parent_id)
            print(strng)
     
        def toJSONObject(self):
            return {"id":self.dnd_id,"type":self.dnd_type_id,"label":self.dnd_label,"parentid":self.dnd_parent_id}
    *EDIT* J'ai reussi a reproduire l'erreur dans phpmyadmin avec cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM datanodes where par_id = ['0']'
    Je ne sais pas d'ou viennent les crochets, mais du coup j'ai essayé plusieurs syntaxes, la requete fonctionne avec 0, '0', '{0}' , '[0]', "['0']" et "0" ...

    Voila si vous avez besoin de precisions n'hesitez pas je suis en ligne, si j'ai du nouveau je vous tiens au courant.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Bien l'erreur a disparu, il se trouve que lorsqu'elle fonctionne au sein de la page web ma fonction getdatanodechildren ne reçoit quasiment jamais de int mais souvent un tableau monocase avec une chaine dedans... voila ma pirouette pour me sortir de cette situation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    def getDataNodeChildren(parentid):
    #sometimes the request send a parentid which is ["0"] instead of 0
        try:
            sql = "SELECT * FROM datanodes where par_id = {}".format(parentid)
            cur.execute(sql)
            print sql
        except:
            parid = parentid[0]
            sql = "SELECT * FROM datanodes where par_id = {}".format(parid)
            cur.execute(sql)
            print sql
        dndList=[]
        for row in cur.fetchall() :
            #dnd prototype : id, type_id, label, parent_id
            dnd = DataNode( row[0], row[3], row[2], row[1])  
            dndList.append(dnd)
        return dndList
    Ma requete est toujours identique a celle que j'ai envie qu'elle soit à présent

    Apres j'ai une autre erreur
    TypeError: sequence of byte string values expected, value of type list found
    Mais je pense que ca va aller.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/05/2012, 08h45
  2. [Wamp] Petit probleme avec WAMP
    Par john7911 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 24/05/2008, 09h35
  3. Probleme avec WAMP et XMLRAD 2007
    Par piriac dans le forum XMLRAD
    Réponses: 8
    Dernier message: 20/02/2008, 14h38
  4. Réponses: 1
    Dernier message: 19/07/2007, 14h53
  5. Réponses: 2
    Dernier message: 28/06/2006, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo