Forum général.cherche-logiciel Moderniser un petit script web maison, le passer en python, que choisir?

Posté par (page perso) . Licence CC by-sa
Tags :
3
23
mar.
2014

Salut à tous,

J'ai fait un petit script pour monitorer les performances de mon assurance vie il y a un bail.
C'est pour palier à ma banque qui ne propose pas de suivi réellement correct des valeurs, du coup j'entre les données à la main et ça me donne l'indication si c'est rentable ou pas.

Bref, j'ai codé ça un peu à l'arrache, y a un peu de tout dedans: du mysql pour stocker, un truc qui s'appelle AjaxCrud pour manipuler la BDD, et un script en Javascript qui invoque Highlight.js pour afficher les graphes.
En gros ça donne ça:

Imgur
Imgur
Imgur

(notez les piètres rendements sur une assurance vie de 5 ans..)

Le truc, c'est que ça gère pas grand chose:

  • pas de gestion des arbitrages, du coup le gros pet qui se voit sur la courbe, c'est un arbitrage, mais en fait il ne devrait pas être présent
  • ça gère pas les changements de versements ni d'attribution des investissements (genre je versais 100€/mois avec 50% en fonds euros et le reste divisé entre BRIC, EU et US, maintenant je met plus que 50€ avec 65/35%) ce qui fait que les calculs actuels sont plus vraiment corrects

Etcc….

Bref, je veux réécrire le truc.
J'ai déjà posé la théorie sur papier (les formules de calcul, etc..), j'ai une vague idée de ce que je veux (des graphes, ajout simple d'arbitrages, de changements de versements et de prises de valeurs), mais je ne sais pas comment commencer.

J'aimerais bien avoir un truc simple à héberger, idéalement un petit projet python avec un serveur intégré (je suis le seul à consulter), avec en prime une base SQLite (pour m'épargner MySQL, mais ce n'est pas ultra important).
Problème, je ne sais pas quoi choisir entre Flask, Bottle, truc et bidule.
Du coup je m'en remet à votre connaissance: est-ce que vous avez des choses à me conseiller? Un framework en particulier?
Sachant que je n'ai jamais trop fait de web en python, mais que je connais le langage quand même.
Je suis aussi ouvert à d'autres "frameworks", mais je n'aimerais pas avoir à réapprendre 2000 pages de docs ou bien déployer 1000 dépendances (Rails?) juste pour avoir un pauvre petit truc.

À vous!

  • # bah voyons...

    Posté par (page perso) . Évalué à -1.

    Du coup je m'en remet à votre connaissance: est-ce que vous avez des choses à me conseiller? Un framework en particulier?

    http://weboob.org/ évidemment !

    * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

    • [^] # Re: bah voyons...

      Posté par (page perso) . Évalué à 3.

      Humm… non, c'est pas du tout le même besoin.
      Weboob me permet de choper les valeurs à un instant T, mais:

      • pas pour mon compte d'assurance vie, seulement sur les comptes standards (j'ai posé un bug dans ce sens d'ailleurs),
      • il ne fournit pas d'analyse au long terme, et cela ne fait très probablement pas partie de son but premier d'ailleurs.

      Bref, c'est pas trop mon objectif.

  • # À la main

    Posté par . Évalué à 1.

    Pour ce que tu veux faire il n'y a pas forcément besoin d'un cadriciel complet, tu pourrais faire le formulaire de saisie avec Python (ou autre) en CGI (ou FCGI) avec du Sqlite pour les données (ou même un bête fichier JSON) et lui faire générer les autres pages (listings, graphiques) en HTML. Pour les graphiques si tu veux t'amuser tu peux les faire en SVG. Le tout s'héberge facilement, fonctionne bien et demande très peu de dépendances (tu peux n'avoir besoin que de la stdlib de python).

    • [^] # Re: À la main

      Posté par (page perso) . Évalué à 2.

      Certes, mais j'aimerais avoir justement un "cadre", histoire de faire les choses bien et de pouvoir maintenir le tout. C'est surtout la partie SQL qui me lourde un peu, aujourd'hui c'est des pauvres scripts PHP qui me retournent du JSON, mais c'est ultra "statique".

      J'orienterais bien mon choix sur des micro frameworks à la Flask, mais j'ai peur que ce soit très orienté REST, alors que ce que je veux c'est un site web, pas une API.

      • [^] # Re: À la main

        Posté par . Évalué à 1.

        Et bien, te prends pas la tête plus que cela. Flask ou Bottle sont adaptés pour ça, pour faire des sites webs.
        Et quand à choisir entre Flask et Bottle, les deux sont bon et se travaillent de la même manière. J'ai tendance à choisir Flask car il est un peu plus complet "out-the-box" (sans trop l'être comme django) et il y a pas mal d'extensions de dispo.

  • # web2py ?

    Posté par (page perso) . Évalué à 1.

    Bonjour,

    J'aimerais bien avoir un truc simple à héberger, idéalement un petit projet python avec un serveur intégré (je suis le seul à consulter), avec en prime une base SQLite (pour m'épargner MySQL, mais ce n'est pas ultra important).

    Peut-être que web2py te conviendra ? Il remplit ces critères.
    (Licence LGPL V3)

  • # Karrigell ?

    Posté par (page perso) . Évalué à 3.

    À une époque j'avais fait tout le site de ma copro avec Karrigell, qui permettait des pages principalement html avec du Python dedans si besoin, pour des parties logiques, et des pages plus actives en Python principalement.
    Depuis c'est passé en version pour Python 3, et ça semble avoir avancé - des posts réguliers sur la liste avec des réponses de l'auteur et d'utilisateurs.

    http://karrigell.sourceforge.net/

    Et c'est un produit breton ! (si ça peut faire une différence…)

    Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

  • # IPython notebook + pandas

    Posté par . Évalué à 2.

    Avec le notebook tu peux mélanger le texte, les formules et les graphes sur une page web et pandas travaille bien avec les données tabulaires. Après si tu n'as pas trop de données à stocker pourquoi ne pas passer par un fichier plat. Tu pourrais mettre le tout dans un gestionnaire de version et faire des commits lors d'arbitrage.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.