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 :

Python MySQL db


Sujet :

Réseau/Web Python

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Points : 81
    Points
    81
    Par défaut Python MySQL db
    Bonsoir à tous ,

    Je viens vous demander de l'aide concernant python et mysql :

    En fait, j'aimerai savoir s'il est possible de passer un argument à une fonction, et de placer cet element dans une requete SQL : par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def fonction1(nom_de_ma_table):
         curseur1 = connexion.cursor ()
         curseur1.execute ("use nom_de_ma_table")
         curseur1.execute ("show tables")
         lignes = curseur1.fetchall()
         print " Les tables sont :"
         for l in lignes:
              print l[0]
         print " Il y a %d tables renvoyees" % len(lignes)
         curseur1.close()
         connexion.close ()
    Ici l'argument que j'aimerai passer est "table" qui correspondrait au nom d'une table que je souhaiterait utiliser dans ma requete sql " use nom_de_ma_table "
    Cette requete ne fonctionne pas telle quel , et je voudrai vraiment pouvoir passer un argumement dans ma fonction et l'utiliser dans ma requete, est ce possible ?
    Merci d'avance !

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    si je comprend bien tu veux spécifier non pas une table mais la base de données sur laquel tu veux travailler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def fonction1(dbname):
        curseur1 = connexion.cursor ()
        curseur1.execute ("use "+str(dbname))
        curseur1.execute ("show tables")
        lignes = curseur1.fetchall()
        print " Les tables sont :"
        for l in lignes:
            print l[0]
        print " Il y a %d tables renvoyees" % len(lignes)
        curseur1.close()
        connexion.close ()
    je pense que ca devrait faire l'affaire

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Points : 81
    Points
    81
    Par défaut
    Merci ca fonctionne !

    Et si par exemple, je souhaite ecrire une fonction dans laquelle je rentre en paramète un argument qui se retrouvera dans une clause where where par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def fonction2(mon_argument):
         curseur2 = connexion.cursor (MySQLdb.cursors.DictCursor)
         curseur2.execute ("use saccharomyces_cerevisiae_core_41_1d")
         curseur2.execute (" select gene_id, seq_region_start, seq_region_end, status from transcript where status='mon_argument' limit 5")
         resultats = curseur2.fetchall ()
         for l in resultats:
              print "%s, %s" % (l["gene_id"], l["status"])
         print "%d lignes renvoyees" % curseur2.rowcount
         curseur2.close()
         connexion.close ()
    Merci d'avance !

  4. #4
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut

    On additionne pas des choux et des carottes!!!
    dès lors que l'on fait appelle a une variable que l'on veut inclure dans une chaine de carractères on fait comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def concat(maVariable):
        a='le petit train vert est partie de la gare'
        print a+maVariable
     
    concat(' de paris')
     
    >> le petit train vert est partie de la gare de paris
    on peut raccourcir en faisant ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def concat(maVariable):
        print 'le petit train vert est partie de la gare'+maVariable
    je te conseille de bien lire le tuto de gerard swinnen, excellent livre pour bien comprendre python et les concepts de programmation.


Discussions similaires

  1. Python/MySQL - n'enregistre pas dans la bdd
    Par SuperJohn dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 19/05/2009, 15h20
  2. Connexions multiples Python - Mysql
    Par raoulchatigre dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 01/04/2008, 23h08
  3. Cherche hébergeur python, mysql et cron
    Par TallyHo dans le forum Hébergement
    Réponses: 5
    Dernier message: 22/03/2008, 17h57
  4. Debian Cron Python & Mysql
    Par genjinophil dans le forum Linux
    Réponses: 1
    Dernier message: 16/02/2007, 12h10
  5. Python mysql
    Par azmimik dans le forum Bibliothèques tierces
    Réponses: 8
    Dernier message: 06/08/2006, 17h25

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