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 :

Choix framework web débutant


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Choix framework web débutant
    Bonjour,

    Je suis débutant en python et je désire apprendre ce langage dans le cadre d'un projet pour lequel je n'ai pas trouvé de solution à mon goût (utilisation de la camera HQ du Raspberry pi). j'arrive à faire ce que je recherche en écrivant des petits scripts à l'aide du module "picamera" mais la camera étant fixée sur le Raspberry pi (c'est la solution la plus simple que j'ai trouvé, en en sachant qu'elle est susceptible d'être montée sur différents appareils : microscope trinoculaire, loupe ou télescope ...), j'aimerais m'affranchir d'un maximum de câbles (notamment le câble HDMI) et éviter de devoir passer par une solution type VNC. En plus, je trouve qu'à l'usage, lancer manuellement un script pour "voir ce que je fais", un autre pour "prendre une photo" et un autre pour "enregistrer une vidéo", sans compter la récupération des fichiers obtenus pour les utiliser sur une autre machine, les renommer avec le type d'observation effectuée, la date et les caractéristiques de l'appareil utilisé, etc. ... devient vite laborieux ! J'ai donc pensé à une interface graphique et me suis vite persuadé (à tort ?) que le plus simple pour bosser en local (sur le Raspberry pi) comme en distant (pour le moment, je n'envisage que du "distant" en réseau local, mais je suppose que s'il est justifié, l'accès par Internet ne doit pas être ce qu'il y a de plus compliqué à faire en routant le bon port sur la bonne machine si l'accès en réseau local marche ...), le plus simple donc, était de développer une interface web (plutôt qu'un client spécifique) dans laquelle le remplissage de différents champs (que je pense situer dans une colonne à droite de la page) me permettraient de passer les paramètres requis par l'utilisateur à mes scripts pendant qu'une vue dans la colonne de gauche renverrait un direct de l'image reçue (redimensionné en 640 X 480 par exemple) cliquable, pour avoir une vue dans un nouvel onglet, ainsi qu'un direct de l'image retraitée (zoom d'une partie de l'image, incrustation d'une échelle, prétraitement de flats (correction du vignettage et des assombrissements induits par poussières présentes sur le trajet optique).

    Déjà, première question : Est-ce que ça vous semble cohérent de faire une appli web par rapport à ce genre de contraintes (par opposition à un client dédié par exemple, ou autre-chose que je ne connais pas ...) ?

    Ensuite, j'ai fait des recherches, et je suis tombé sur plein de frameworks (micro ou pas) pour python, j'en ai retenu 3 (mais le choix n'est que limité à ce que j'ai pu identifier à mon humble niveau) :
    1. Django : C'est le plus utilisé mais il a l'air d'avoir la réputation d'être plus complexe à mettre en œuvre que les autres pour un débutant, est-ce une réputation justifiée ? Dans le cadre d'un projet que je souhaiterai laisser libre, il me semble qu'un bon départ soit de choisir un framework populaire et qui aura la possibilité d'y apporter des fonctionnalités auxquelles je n'ai pas pensé par la suite, mais n'est-ce pas trop ambitieux pour un débutant ?
    2. Flask : Ça a l'air pas mal, mais pour une raison obscure, je n'ai même pas réussi à faire ponctionner le premier script de la doc en faisant du copier/coller, c'est mal barré, je suis vraiment un gros débutant, tout seul dans son coin !
    3. Bottle : Là, ça marche nickel, j'arrive à afficher des pages et à les bricoler un peu


    Après, je ne sais pas si les 3 (et surtout les deux derniers qui semblent être plus "simples" que Django) sont capables de faire des pages dynamiques et de renvoyer des paramètres remplis ou sélectionnés par l'utilisateur à mon script, mais je me dis que c'est quand même la base en 2021 (bonne année !). Aussi, je n'ai pas l'ambition de faire tout de suite du responsive, mais je me dis qu'une fonctionnalité intéressante serait de pouvoir aussi y accéder depuis un smartphone ou une tablette (d'ailleurs, je pense qu'il sera intéressant de proposer une option pour que le Raspberry pi soit serveur DHCP de son propre réseau Wifi en utilisation nomade, mais on sort du sujet framework qui m’intéresse ici ...).

    Que pensez-vous de ma sélection, vers quoi m'encouragez-vous à m'orienter en sachant que je ne suis pas en mode "je ménage mes efforts" et suis OK pour investir du temps dans ce projet (tout est relatif, mais je pense pouvoir y consacrer un vingtaine d'heures par mois) ?

    Merci de vos retours et, encore une fois, meilleurs vœux pour 2021 !

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bonjour,

    Votre première phrase n'indique rien de bon, et loin de moi être pessimiste ou essayer de vous décourager

    Je suis débutant en python
    ça va être dur, car quelque soit le choix que vous ferez, il faut avoir une bonne connaissance du langage Python (niveau intermédiaire pourrait suffire, mais c'est un minimum).
    Je conseille donc un apprentissage, pourquoi pas accéléré, des objets constituant la base du langage.

    Est-ce que ça vous semble cohérent de faire une appli web par rapport à ce genre de contraintes
    Si cela existe déjà, je pense que vous avez votre réponse, sinon, c'est louche...

    Que pensez-vous de ma sélection
    Ils sont tous très bien, avec leurs avantages
    • Django apporte une architecture pré-définie
    • Flask et Bottle donnent une liberté sur le choix de son architecture


    Pour cela je conseillerai Django, car ça oblige à une organisation tout de même structurée que n'a pas forcément le débutant en Python.

    D'autres avantages,
    • Django a beaucoup d'applications pour un peu tout faire avec
    • Flask se rapproche de Django mais n'est pas encore à ce niveau, seulement il est beaucoup plus léger
    • Bottle est léger


    Là encore je choisirai Django, car vous ne semblez pas vouloir développer une API et que cette légèreté ne semble pas essentielle.

    En conclusion ils sont tous de très bons choix, tout dépend de l'organisation rigoureuse que vous pourriez avoir sur un projet.
    Si la rigueur est présente, alors ils sont tous aussi bons l'un que l'autre, même avec Django on peut structurer comme on veut (si on connaît bien le minimum de ses besoins pour fonctionner).
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Quelque soit votre choix, il y a d'un côté la caméra qui capture des images, de l'autre une/des interfaces utilisateurs qui permettent de lancer des commandes et d'afficher le résultat et, quelque part, des capacités de traitement et de stockage d'image.

    Ce qui fait pas mal de composants pour lesquels il faut définir rôles, responsabilités et interfaces et déjà un (petit) travail de conception pas si négligeable.

    Déjà vous avez un gros sujet dans votre expression de besoins: "'une fonctionnalité intéressante serait de pouvoir aussi y accéder depuis un smartphone ou une tablette"...

    Dans l'absolu, c'est intéressant, mais dans la pratique, les applications installés sur smartphone ou tablette sont un peu autre chose qu'un simple navigateur Web... (simple... mais déjà compliqué).

    Mine de rien, çà veut dire développer une application pour IOS, une autre pour Android, puis une autre pour votre navigateur Web préféré... Ambitieux car beaucoup de langages à connaître et d'environnements à maîtriser.

    Personnellement, je resterai sous Python en développant un client lourd qui discute avec un serveur via des échanges de messages (sockets ou plus évolué).
    Puis on essaie de faire du HTTP+ avec une interface ReST... Et on a une bonne base pour développer les différents clients.

    Ceci dit, c'est vous qui codez alors vous faites un peu comme vous voulez...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    Le projet est bien mais il manque une finalité pour le rendre compréhensible.
    Si je devais monter un nouveau projet avec des images, ce serait déjà dans un
    environnement que je connais déjà :

    - achat d'un boîtier photo qui capte le passage des animaux ( 50 à 100 eur )
    - le cordon usb est ensuite dirigé vers un raspi qui va collecter les images
    - usb par python à développer
    - ensuite raspi et son wifi fera parti d'un réseau local et un pc pas trop loin du raspi
    affichera les images dans un navigateur web

    nb : j'ai un boitier de chasse et le vent dans les feuilles des arbres déclenche photo

    - sélectionner les photo sur de la reconnaissance de forme est la porte
    vers l'intelligence artificielle et la conduite automobile par des robots

Discussions similaires

  1. Choix framework pour débutant
    Par lostsoul dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 25/09/2015, 04h19
  2. Choix d'un framework web coté serveur
    Par hari-seldon dans le forum Débuter
    Réponses: 0
    Dernier message: 13/03/2013, 18h13
  3. Réponses: 1
    Dernier message: 15/03/2012, 21h07
  4. choix framework web
    Par clubist dans le forum Frameworks Web
    Réponses: 2
    Dernier message: 15/09/2011, 16h10
  5. Choix framework MVC débutant
    Par ben.IT dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 29/07/2011, 10h50

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