Bonjour tout le monde,
Je vous écris car je rencontre un problème que doivent rencontrer beaucoup de développeurs à leur début similaire à "quels outils pour quelles utilisations ?".
En effet, je traîne depuis longtemps en tête une idée de base de données qui contiendrait évidemment des informations que j'aimerais traiter.
Comme toute base de données, j'aimerais pouvoir insérer et récupérer des jeux de données assez facilement afin d'agrémenter la base et pouvoir en extirper des agrégats de données comme d'une aide à la décision.
J'aime bien partager ce que je fais, alors je me dis que ce serait cool que ce soit multiplateforme. Mais je ne sais pas quel langage ou quel outil utiliser (ou bien si je dois démarrer de rien). À noter que ce serait cool que la BDD soit embarquée dans le logiciel et que ce soit facile à installer.
Dans l'idéal, on se dit qu'on peut partir d'un outil déjà existant et participer afin de l'améliorer. Mais c'est toujours pareil, quand on a une idée en tête, on dévie fortement d'un projet existant, et ledit projet n'accepte pas toujours le changement/additif. Il en découle que soit on suit le projet de près et on s'échine à faire de la gestion d'erreurs sur des commits entre les deux projets, soit on devient un fork et on gère plus rien du tout parce qu'on connaissait pas assez bien l'outil.
Qui plus est, si on commence de rien, on réinvente des roues carrées… C'est très ennuyeux tout ça !
Par ailleurs, je ne connais, pour l'instant que le Python (que je trouve un peu lourd) et quelques bribes de Lua. Il m'intéresserait de le faire en Lua, mais c'est pas simple sans ORM de taper dans une BDD quand on a jamais fait ça.
Ainsi je vous le demande, commencez-vous "From scratch" vos projets ou bien cherchez vous un projet similaire pour l'améliorer ? Si vous utilisez des projets existants, est-ce plutôt des outils tels que SQLAlchemy, Django, etc. ?
Mon idée de projet est très proche d'une gestion de stock et d'achat, mais pour un particulier. Ce dernier est un profane vis à vis du jargon technique pour les outils de gestion d'achat/stock, du coup c'est très ennuyeux :-/.
Je vous remercie d'avance pour l'aide que vous pourrez m'apporter à ce sujet,
Blankoworld.
# Python & Sqlite
Posté par JPEC . Évalué à 3. Dernière modification le 01 octobre 2013 à 08:56.
Perso j'utilise Python et Sqlite. C'est pratique car Sqlite est dans la bibliothèque standard de Python donc il n'y a pas de suppléments à installer. Pour l'interface graphique j'utilise tkinter qui est aussi dans la bibliothèque standard de Python.
Sur n'importe quel poste (Linux, Windows ou Mac) il suffit d'installer Python3 pour que ça fonctionne.
[^] # Re: Python & Sqlite
Posté par Sygne (site web personnel) . Évalué à 3.
Idem ici.
C'est bien documenté, très simple, et vite fonctionnel.
Prends soin de travailler avec python3 et pas python2 pour éviter d'avoir à mettre à jour plus tard.
[^] # Re: Python & Sqlite
Posté par Blankoworld . Évalué à 1.
Merci pour ces premières réponses. Quelques questions supplémentaires (je sais, j'abuse ^_^) :
Si je pose ces questions c'est que jusqu'à maintenant je modifiais des outils existants. Donc je n'avais pas à choisir les outils.
Là ça devient forcément plus tendus car le choix initial est tout de même crucial (selon moi) !
[^] # Re: Python & Sqlite
Posté par Sygne (site web personnel) . Évalué à 3. Dernière modification le 01 octobre 2013 à 21:46.
Je ne suis pas assez spécialiste de python pour te conseiller un outil plutôt qu'un autre en réponse à tes questions précises. Mais je crois que ces questions précises peuvent se contenter d'une réponse très générique: je choisirais les outils fournis par défaut, et si ce n'est pas possible ou qu'il reste du choix, les outils que je connais/aime le plus.
[^] # Re: Python & Sqlite
Posté par Yakulu . Évalué à 3.
Tout ce qui suit est mon avis, subjectif et pas forcément le meilleur. D'autant que je ne fais plus énormément de Python ces temps-ci.
Bottle.py est un excellent micro framework Web.
Oui, à mon avis l'interaction Web n'est pas vraiment liée au code objet/modèle de données.
(d'ailleurs selon la complexité de ton application, dans la catégorie léger, peewee est un sympathique ORM).
Le standard, il me semble, est plutôt Sphinx.
Le module inclus est utilisable. Sinon, personnellement j'employais pytest, dont je préférais l'API.
En théorie, tous les modules cités sont compatibles Python 2 et 3.
Bon courage.
[^] # Re: Python & Sqlite
Posté par Blankoworld . Évalué à 0.
Après quelques tests et recherches, voici quelques résultats :
Après, je tentais de voir ce qu'il était possible de faire en interface utilisateur "simple", sans trop faire de code derrière. Et j'ai bien l'impression que quoiqu'il arrive - console ou graphique - il faille coder comme un malade pour tester tout ce que l'utilisateur saisie comme données.
Est-ce aussi votre impression ? Faites vous plutôt console ou graphique ?
Je ne trouve rien qui permette de faire des interfaces consoles pour utilisateur et qui soit multiplateforme quasiment. Tandis qu'avec Tkinter, c'est intégré à Python. Curieux non ?
[^] # Re: Python & Sqlite
Posté par Sygne (site web personnel) . Évalué à 3.
Àmha, l'interface console par excellence est la ligne de commande. Si c'est pour avoir une GUI en ascii, je ne vois pas l'intérêt d'utiliser une console. Par contre la ligne de commande a l'avantage de pouvoir être utilisée dans des scripts, des alias, des tubes, et des substitutions de variables.
[^] # Re: Python & Sqlite
Posté par Blankoworld . Évalué à 0.
Je ne suis pas totalement d'accord avec toi concernant les programmes en mode ligne de commande. On peut très bien imaginer vouloir éviter les dépendances à des interfaces graphiques gourmandes et donc vouloir permettre l'utilisation d'un mode "console" qui permette également une saisie rapide à l'aide des touches claviers.
J'aimerais faire de la saisie en masse et je ne sais pas encore trop comment procéder notamment sur le fait qu'il y ait des dépendances entre plusieurs objets (contraintes d'intégrité).
Après, niveau temps dépensé en développement, je peux comprendre que console ou graphique, c'est quasiment pareil. Ce qui amène probablement les gens à utiliser du mode graphique.
[^] # Re: Python & Sqlite
Posté par Sygne (site web personnel) . Évalué à 2.
Ah, oui, je n'avais pas pensé à ça.
J'ai été confronté à cette situation (je devais insérer des extraits de livres papiers). J'ai d'abord essayé avec une interface web, mais écrire dans un formulaire n'est pas très pratique. Au final, je l'ai fait avec un script et vim. Le script pré-calculait certains champs, les envoyait dans un fichier, ouvrait le fichier avec vim de sorte que je puisse y ajouter le texte des autres champs, et interprétait ensuite le fichier pour insérer le tout dans la base de donnée. Pour moi qui travaille souvent avec vim, c'était, je crois, la méthode la plus efficace.
Je te remercie pour le fil de discussion que tu as ouvert, car j'y ai découvert peewee et bottle, que je trouve extraordinairement pratiques !
# Et pourquoi pas en Perl
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
c'est standard pour connecter à n'importe quel base de données et il y a des environnements pour le web qui font une grosse partie du boulot. Par exemple, Mojolicious est un (il y en a d'autres) framework à la mode. Je suis tombé l'autre jour sur cette petite application qui ne sers pas à grand chose mais donne un exemple intéressant coté code.
https://github.com/ldidry/lstu/
Cela donne cela en pratique
http://lstu.fiat-tux.fr/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.