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

Python Discussion :

Python et les bases de données


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    ingénieur en travaux publics
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ingénieur en travaux publics
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Par défaut Python et les bases de données
    salam
    je viens de commencer à utiliser Python pour développer des applications
    je cherche à créer un logiciel qui travail avec les bases de données, mais j'ai pas une idée comment ça se passe
    quelle relation lie Python et SQL?
    si vous pouvez me donner une idée pour commencer?
    merci d'avance
    cordialement

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 197
    Par défaut
    hello,
    tu peux regarder ici par exemple.

    Ami calmant, J.P

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Généralement pour chaque base de données (postgresql, mysql, oracle, sqlite) il existe un module développé et adapté qu'il faut télécharger puis installer (postgresql=psycopg2, mysql=MySQLdb, sqlite=sqlite3, oracle=???). A l'exception de sqlite3 qui est maintenant intégré en natif.

    Ensuite le schéma est généralement toujours le même
    1. se connecter à la bdd => ça renvoie alors un identifiant de connexion "bdd" => bdd=connect(serveur, port, database, user, password).
    2. utiliser cet identifiant pour créer un "curseur" c'est à dire un objet dédié à la manipulation (select, insert, update, delete). => curs=bdd.cursor("select truc from chose where machin=valeur").
    3. si le curseur est un curseur d'insertion/suppression (insert/update/delete) alors généralement il ne stocke ni ne renvoie rien (ça dépend des modules, certains renvoient vrai/faux selon que la modif s'est faite ou pas bref ça c'est à regarder). Si c'est un curseur de requêtes alors il stocke le résultat en interne sous forme de tableau 2D (x lignes, y champs par lignes, les champs équivalents aux champs demandés dans la requête) ; tableau qu'on peut alors exploiter...
      Code python : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      if curs.rowcount > 0:
          # Ici on sait que la requête a renvoyé une ou plusieurs lignes qu'on va traiter
          for ligne in curs.fetchall():   # Ou directement ligne=curs.fetchone() s'il n'y a qu'une ligne
              # Traitement d'une ligne
              print(ligne)
          # for
      else:
          # Ici on sait que la requête n'a rien renvoyé
      # if
    4. fermer le curseur => curs.close().
    5. éventuellement demander un commit (ou un rollback) dans le cas d'une transaction => bdd.commit()/bdd.rollback().
    6. fermer la bdd quand on a fini de travailler => bdd.close().
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Deux petits compléments:

    - Il existe un standard Python pour l'accès aux SGBD auquel les pilotes doivent répondre: la spécification DB-API 2.0 => voir PEP 249 (https://www.python.org/dev/peps/pep-0249/).

    - Entre sqlite3 et les autres, il y a une différence importante: sqlite3 n'est pas un serveur mais est lié à un programme. En conséquence, si une application demande des accès multiples concurrents de lecture/écriture, il faut choisir un SGBD en serveur.

Discussions similaires

  1. [C#] Lister les Bases de données (SQL SERVER) d'un poste
    Par justice007 dans le forum Accès aux données
    Réponses: 9
    Dernier message: 21/06/2010, 16h10
  2. Delphi et les bases de données.
    Par programaniac dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/11/2005, 14h44
  3. Les bases de données dans un logiciel PRo
    Par LaMusaraigne dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 30/06/2005, 08h18
  4. Livre gratuit sur les bases de données...
    Par benby dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 26/05/2005, 12h24
  5. Les Bases de Données! tout un monde!!
    Par kikimnet dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2004, 18h26

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