DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Apprenez Flask avec un violon d’application
    Uncategorized

    Apprenez Flask avec un violon d’application

    mars 2, 2023
    Apprenez Flask avec un violon d'application
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Il existe une approche conventionnelle pour apprendre un framework tel que Flask : apprendre avec un tutoriel, alors construire quelque chose de petit, et augmenter progressivement la fonctionnalité. Il existe des dizaines à des centaines de didacticiels de ce type, et ils sont très utiles.

    Nous proposons ici une approche complémentaire, celle qui inverse entièrement le scénario. Construire un projet complet en cours d’exécution que vous pouvez explorer en une minute, tpoule apprendre comment le modifier, le déboguer – et ensuite comment créer cela, littéralement en quelques secondes.

    App Fiddle : un didacticiel sur les flacons en action

    Des outils comme JSFiddle sont extrêmement utiles. Sans installation, vous pouvez utiliser votre navigateur pour explorer le code JavaScript/HTML existant, le modifier et voir les résultats.

    Flacon et violonIci, nous appliquons cette approche à une application entière : une App (Flask) Fiddle (lien à la fin).

    • Comme un JSFiddle, il s’ouvre dans votre navigateur ; pas d’installation.
    • Mais c’est une application Flask complète : un projet en cours d’exécution, avec une base de données, accessible avec SQLAlchemy
    • Accessible via VSCode, exécuté dans votre navigateur, avec l’aimable autorisation de Espaces de code
      • Espaces de code est un nouveau produit remarquable de GitHub. Lorsque vous cliquez sur le lien à la fin, il réquisitionne un serveur, installe votre projet (et toutes ses dépendances, telles que Python et Flask) et l’ouvre dans VSCode dans votre navigateur.
      • Vous pouvez également utiliser cette App Fiddle pour explorer Espaces de codecomment configurer un conteneur de développement et l’utiliser dans vos propres projets.

    Le lien (à la fin) ouvre en fait 3 projets. La première est une application minimale Flask/SQLAlchemy. Il a un fichier README : utilisez-le pour explorer le code, l’exécuter, le modifier/le déboguer, etc.

    Livrer tout en apprenant

    Mais ce n’est pas tout.

    Alors que le premier projet montre qu’il est assez simple de créer un point de terminaison unique, de collecter des données et de les renvoyer, c’est un parcelle plus de travail pour créer un projet entier (points de terminaison multiples, une application d’administration, etc.). C’est un cheval d’une toute autre plume !

    Cheval d'une plume différente

    Nous avons donc créé API Logic Server. C’est une application Python open-source, déjà chargée dans notre projet Codespace.

    Il crée un projet Flask entier avec une seule commande, comme ceci :

    ApiLogicServer create --project_name=ApiLogicProject --db_url=nw-
    

    Cela lit votre schéma de base de données (ici, une version de Northwind) et crée un projet complet et exécutable, instantanément:

    • API : Un endpoint pour chaque table, avec filtrage, tri, pagination, et l’accès aux données associées. Swagger est automatique.

    • Interface utilisateur d’administration : Mmulti-pages/Mmulti-table applications, avec des navigations de page, jointures automatiques, et déclaratif cacher/montrer. Il exécute un fichier YAML, de sorte que les personnalisations de base ne nécessitent pas d’arrière-plan HTML ou JavaScript.

      • Des interfaces utilisateur personnalisées peuvent être créées à l’aide de l’outil de votre choix (React, Angular, etc.), à l’aide de l’API.

    Entièrement personnalisable : Python standard, Flask, SQLAlchemy

    La création du projet exécutable ne nécessite aucune connaissance de Flask, SQLAlchemy ou même Python. En fait, vous pouvez utiliser le projet créé pour apprendre ces technologies, en « jouant » avec un système en cours d’exécution qui offre déjà de la valeur (par exemple, en permettant le développement d’une interface utilisateur personnalisée, l’intégration, etc.).

    C’est parce que le projet créé est un projet Flask/SQLAlchemy standard. Personnalisez-le et étendez-le avec tous les fondamentaux que vous avez appris dans les didacticiels conventionnels, et dans l’App Fiddle, avec votre IDE préféré.

    Règles métier uniques de type feuille de calcul

    En tant que développeur d’applications expérimenté, je considère les projets comme environ la moitié du back-end et la moitié du front-end. Votre kilométrage peut varier, mais le backend représente certainement beaucoup de travail.

    • Multi-table dérivations et contraintes appliquées à la mise à jour :
      • Par exemple, le solde du client – la somme des montants des commandes non expédiées – ne peut pas dépasser la limite de crédit
    • Autorisation et authentification
      • Par exemple, les utilisateurs doivent entrer un identifiant et un mot de passe valides pour accéder
      • Leurs rôles déterminent les lignes de base de données qu’ils voient (par exemple, une application mutualisée).

    API Logic Server vous permet de déclarer des règles de type feuille de calcul pour les implémenter. Les règles sont une technologie très importante, mais la caractéristique la plus frappante est peut-être qu’elles sont 40 fois plus concises que le code. Ces 5 règles représentent la même logique que 200 lignes de Python :

    Rule.constraint(validate=models.Customer,       # logic design translates directly into rules
        as_condition=lambda row: row.Balance <= row.CreditLimit,
        error_msg="balance ({row.Balance}) exceeds credit ({row.CreditLimit})")
    
    Rule.sum(derive=models.Customer.Balance,        # adjust iff AmountTotal or ShippedDate or CustomerID changes
        as_sum_of=models.Order.AmountTotal,
        where=lambda row: row.ShippedDate is None)  # adjusts - *not* a sql select sum...
    
    Rule.sum(derive=models.Order.AmountTotal,       # adjust iff Amount or OrderID changes
        as_sum_of=models.OrderDetail.Amount)
    
    Rule.formula(derive=models.OrderDetail.Amount,  # compute price * qty
        as_expression=lambda row: row.UnitPrice * row.Quantity)
    
    Rule.copy(derive=models.OrderDetail.UnitPrice,  # get Product Price (e,g., on insert, or ProductId change)
        from_parent=models.Product.UnitPrice)
    

    Le troisième projet du violon illustre à la fois les règles et certaines personnalisations « standard » de Flask/SQLAlchemy. Un didacticiel est inclus pour vous aider à les explorer, à les exécuter, à voir comment les déboguer, etc.

    Vous pouvez accéder au violon de l’application en suivant les liens en haut de ce blog.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.