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 2,6] [sqlite3] (sqlAlchemy?)


Sujet :

Python

  1. #1
    Membre averti
    Avatar de antoinev2
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 177
    Points : 376
    Points
    376
    Par défaut [python 2,6] [sqlite3] (sqlAlchemy?)
    Bonjour,

    J'apprends à utiliser le module sqlite3, j'ai du mal à trouver de la doc, elle est souvent courte ou manque d'exemples concrets.

    J'arrive à utiliser une requête en utilisant un objet cursor et fetchone().
    Mais je voudrais utiliser une requête que j'ai créée par l'instruction sql "CREATE VIEW ...", et là je ne sais pas comment faire.

    Je cherche à maîtriser l'utilisation d'une base sqlite en général, autant qu'à résoudre ce problème particulier.

    J'ai l'impression que l'exploitation est moins facile qu'avec, par exemple, une base MS Access et la bibliothèque DAO... Mais je tiens bien sûr à persister et signer en python (autant être clair)

    Pour m'entraîner, je code un petit soft qui va utiliser une base.
    Je crée au départ la base en mode shell, par le module sqlite3.
    Mais pour les fonctions dans mes modules, qui exploiteront ensuite la base, me conseillez-vous plutôt sqlite3 ou sqlAlchemy? Ou autre?

    Si je suis passé bêtement à côté de tutoriels, je suis preneur.
    J'ai commencé à écrire un tuto, qui ne se veut pas forcément complet à 100% mais qui expliquera le principal pour créer et exploiter une base de données relativement simple, avec beaucoup d'exemples concrets.

    Toute personne qui souhaiterait m'aider dans cette tâche serait la bienvenue, sachant que pour ma part je suis relativement débutant et que j'y consacre un temps limité (mais régulier, et je suis motivé!).

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Salut,


    Ce que tu dis de sqlite3 ne m’étonne pas du tout.

    Je me suis amusé il y a 3 mois à répondre à une question sur sqlite3 alors que je ne connaissais pas ce SGBD, ni même aucun autre, parce que le problème posé n’avait pas eu de réponse satisfaisante et que ça m’a permis ainsi de débuter l’apprentissage de ce SGBD qui me semblait être très communément utilisé en même temps que plus abordable, en tant que “lite“, et être aussi un bon tremplin vers MySQL.

    Hélas, j’ai vite ressenti une forte aversion envers sqlite3 , en premier lieu à cause de la documentation qui m’apparaît exécrable (le novice que j’étais n’y comprenais rien) mais aussi le fonctionnement lui-même que j’ose qualifier de médiocre malgré mon peu de connaissances en informatique.

    On aura compris: ce SGBD m’a bien bien tapé sur le système.



    C’est dommage que tu veuilles persévérer à apprendre sqlite3 malgré tes propres critiques. Cette persévérance me déconcerte: pourquoi persister dans une voie qui ne manifeste pas de grandes qualités dés le départ ? Il y a tellement de ressources diverses qu’il est dommage de perdre sont temps avec des trucs sans mérite (ouais ouais je sais je tape fort... ça soulage )

    Enfin bref, c’est dommage parce que je trouve ton idée de tutoriel et son esprit très bien. Mais je ne pourrai pas t’aider parce que j’ai décidé de me défier de ce machin lite.





    Ceci dit, j’ai commis il y a 3 mois un post un tantinet longuet qui contient mes critiques envers sqlite3 (pas le module Python, le SGBD) de façon plus développée et surtout, ce qui est susceptible de t’intéresser plus, une réponse d’ordre technique au problème qui était posé, avec fors explications détaillées, dans laquelle je pense que tu pourras trouver des éléments profitable pour ton apprentissage et ton tutoriel.

    http://www.developpez.net/forums/d77...e/#post4468844





    Personnellement, je souhaite acquérir la connaissance d’un SGBD pour des petits usages personnels. Je n’ai pas encore choisi. Hors mon essai décevant de sqlite3, je ne sais pas trop comment choisir. La parution dans un Linux Magazine Hors Série de ces temps-ci d’un dossier sur PostGRESQL dont une version très améliorée et séduisante à plus d’un autre est sortie, me pousse vers ce SGBD.

    J’avais lu aussi des éloges sur InterBase dans un forum SGBD.

  3. #3
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Salut

    La documentation que tu cherches mais ne trouves pas est sans doute cette de SQLite lui-même, ce que tu peux trouver à cette adresse:
    http://www.sqlite.org/docs.html

    Concernant la qualité de SQLite, je ne suis clairement pas de l'avis de Eyquem. Sqlite est une excellente base de donnée, très complète et très pratique dans pas mal de cas. Et si mes souvenirs sont justes, cette librairie a été élue lib C ou Open Source de l'année en 2006 ou 2007 par je ne sais plus quelle grosse entité.

    Concernant l'API python, toutes les requêtes passent par le même chemin, c'est à dire curseur.execute, qu'elles concernent une table, une vue, la base de donnée...

    Tu compares l'utilisation avec MS Access et ses librairies de DAO, mais tu ne travailles pas sur le même niveau. Les DAO d'Access se basent sur des requêtes SQL eux aussi. C'est à toi de créer tes propres DAO pour ton application avec SQLite, ou d'en utiliser des tous faits.

    SQLAlchemy en fait partie d'ailleurs. Enfin, c'est même plus qu'un pattern DAO, c'est un ORM (Object/Relational Mapper). Ce dernier permet de faire une abstraction complète du SQL, ou de s'en servir pour les requêtes les plus complexes.


    Si tu ne connais pas encore bien le SQL, je ne peux que t'encourager à lire plus à ce sujet: http://sgbd.developpez.com/cours/#coursql
    L'API python pour sqlite est clairement expliquée chez python: http://docs.python.org/library/sqlite3.html
    Et SQLAlchemy ont bien entendu leurs propres tutoriels: http://www.sqlalchemy.org/docs/05/index.html

    Pour des petits projets, tu peux surement te passer de SQLAlchemy. Mais à plus long terme, ça devient réellement un investissement intéressant ! Il est sous license MIT en plus, donc je ne vois aucune raison de se priver

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Points : 396
    Points
    396
    Par défaut
    Je suis du même avis que Antoine_935.

    J'ajouterai que;
    - la lib de python et largement sufisante pour utiliser Sqlite, pas besoin d'autre chose.
    - Pour développer une base qui demande plus de possibilités, il y a Firebird (pour Python 2) ou Postgres (pour Python 2 et 3 ).

  5. #5
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Pour toutes ces librairies, existent-ils des exemples "simples" et concrets ?

  6. #6
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    "Ces" librairies. Quelles librairies ?

    Si tu parles de SQLite, la page de la doc python offre d'entrée de jeu deux exemples concrets, simples, et largement suffisants pour commencer.
    Ceci à condition, bien sur, de connaître le SQL, comme pour toute base de données.
    Je redonne donc le lien: http://docs.python.org/library/sqlite3.html

  7. #7
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Effectivement, les exemples sont simples et compréhensibles même sans base en SQL, ce qui est mon cas.

  8. #8
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ça va tout de suite mieux quand il s’agit d’une doc Python.




    Par contre celle du site sqlite....


    Je voudrais poser une question, pour vérifier si je suis stupide ou pas:

    arrivez vous à trouver une page sur le site http://www.sqlite.org/ dans laquelle il y ait une barre de recherche pour lancer une recherche dans le site

    Moi je n’ai pas trouvé.

  9. #9
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Il y a une recherche sur le Wiki, mais je ne suis pas certain qu'il contienne de la doc quant à SQL.

    Autrement, le sitemap et la page de documentation sont des bons points de départ pour trouver. C'est sur que c'est pas la panacée, mais c'est déjà ça de pris.

    Et enfin, google semble bien connaître le site de SQLite
    Exemple, une recherche de "sqlite select" me donne ceci en première page:
    http://www.sqlite.org/lang_select.html

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Personnellement, j'utilise SQLAlchemy et Elixir au dessus de différents SGDB notamment SQLite, PostGres, MSSQL et un peu MySQL.

    Pour faire des proto, SQLite est souvent suffisant, sinon, je fais avec ce dans quoi sont les données...

    Un des intérêts de SQLAlchemy est qu'il permet de faire aussi du SQL de base en masquant tout ou partie des spécificités du SGDB - ce qui dans mon cas est un plus car pas besoin d'avoir 4 manuels sauf dans des cas un peu exotiques.

    Côté plus:
    - la connexion à la base se fait de façon uniforme (avec une URI)
    - on peut passer des query comme avec la DBAPI, mais on peut aussi lui demander de construire le SQL qui va bien,
    Le deuxième point est particulièrement sympa: les fonctions de paginations (offset, limit) ne sont pas implémentée de la même façon sur SQLite ou MSSQL. SQLAlchemy vous permet de masquer cela en générant le SQL qui va bien.
    Côté moins:
    - Quand on doit regarder les détails, c'est compliqué mais le code est bien documenté et intéressant à lire,
    - Les performances: sur le papier ajouter des couches n'aide pas mais tout dépend des contraintes de votre projet. De plus si vous êtes à la recherche d'extrêmes côté perf, vous ne programmeriez pas cela en Python.
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre averti
    Avatar de antoinev2
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 177
    Points : 376
    Points
    376
    Par défaut
    Merci pour vos réponses,

    Eyquem, j'avais lu ton long post avec intérêt. Je compte en tout cas utiliser sqlite3, pas sur de gros projets, mais sur des petits projets. Je me pencherai sans doute un jour ou l'autre sur PostgreSql ou mySql (surtout que les bouquins et la doc ne manque pas, surtout sur mySql).

    J'ai déjà vu la plupart des sites dont vous donnez l'adresse par contre, mais je n'arrive pas à faire fonctionner certaines choses expliquées sur le site sqlite.org.
    Par exemple, ils expliquent comment lister les tables d'une base de données, mais je n'arrive pas à le faire avec sqlite3.
    http://www.sqlite.org/faq.html#q7

    Bon, en tout cas je retiens bien que pour toute requête il faut passer par un objet cursor, c'est déjà une chose qui est claire à présent.

    Je vais continuer dans l'immédiat avec simplement sqlite3, et se besoin je m'attaquerai ensuite à sqlAlchemy. Je connais bien la base du SQL, et sur ce sujet-là on trouve beaucoup de doc donc pas de souci.

    Merci beaucoup à tous pour vos avis éclairés,

  12. #12
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Ouhaaa , chapeau:
    Il y a une recherche sur le Wiki
    Je suis donc un peu stupide.
    Mais comme ce n’est pas parmi les premiers endroits où l’on pense aller chercher une fonction ’search’, je ne me gratifie que de 20% de stupidité.

    Une recherche Google sur ’search’ limitée aux pages du site http://www.sqlite.org/ donne la page dans les premières réponses. Je n’y avais pas pensé.

    Ce qui va dans le sens que tu dis: Google connaît bien SQLite.
    Ce qui signifie qu’il y a beaucoup de recherches qui sont lancées dans Google concernant SQLite , non ?
    N’est-ce pas le signe que les gens doivent se rabattre sur Google pour trouver les docs qui les intéresse dans le site ? Confirmant ainsi la piètre organisation de cette doc.....CQFDLite




    Il semble bien en effet que cette fonction de recherche ne permette pas de rechercher dans la totalité de la doc ... je pouffe.




    Il m’est arrivé de tomber sur une page du site après une recherche dans google et de chercher comment y parvenir en cheminant à partir de la page d’accueil: eh bien je n’y suis pas arrivé !!

  13. #13
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par eyquem Voir le message
    N’est-ce pas le signe que les gens doivent se rabattre sur Google pour trouver les docs qui les intéresse dans le site ? Confirmant ainsi la piètre organisation de cette doc.....CQFDLite
    Haha, j'admire le raisonnement, qui se tient d'ailleurs

    Enfin, pour ma part, que ce soit SQLite, MySQL ou autres, je ne m'ennuie pas à chercher sur leur site, je passe toujours par google. La raison ? <ctrl-T>, <tab>, "<nom du DBMS> <termes de recherche>", <enter> et j'y suis

Discussions similaires

  1. Explication sur sqlite3 et python
    Par otobenzina dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 28/07/2012, 02h00
  2. python 2.6 / 2.7 et sqlite3 : requête
    Par antoinev2 dans le forum SQLite
    Réponses: 0
    Dernier message: 19/09/2011, 15h13
  3. Comment moderniser le sqlite3 du Python 2.6.5 ?
    Par tyrtamos dans le forum Général Python
    Réponses: 3
    Dernier message: 18/08/2010, 09h16
  4. [source][python 3.0]client sqlite3
    Par vincent.mbg dans le forum Contribuez
    Réponses: 3
    Dernier message: 11/09/2009, 17h51

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