💰💌 Si tu te procures un abonnement d'un an au forfait premium de Oui, mais je LLM d'ici le 30 novembre, je t'offre en prime mes quatre formations autodidactes, une valeur de 276 $ ! Clique ici !" 💰💌

Potion Bottle Icon Manuel d'alchimie du code Potion Bottle Icon

Application Point Médian - Behind the scenes !

- 1 112 mots - Temps de lecture estimé: 6 minutes

🌘 Objectifs de cet atelier

🌘 Parcours de création

🌘 Améliorations

🌘 Constats

🌘 Intellij IDEA ou PyCharm

Capture d'écran de PyCharm utilisé pour le développement en Python

🌘 Coeur du de l’application point-median: Expression régulière

🌘 Exemple avec deux groupes

(teur[s]?)[.\-/]([t]?rice[s]?)

Exemple d'expression régulière avec deux groupes pour l'analyse de texte

🌘 Exemple avec trois groupes

(teur)[.\-/](trice)[.\-/]([s]+)

Exemple d'expression régulière avec trois groupes pour une correspondance complexe

🌘 Création de l’interface avec Flask et Bootstrap

🌘 Flask

🌘 Illustrons ça

Architecture de l'application Point Médian basée sur Flask

🌘 Code HTML du formulaire

Voici le code HTML du formulaire de saisir

<div class="container">
<form class="form-inline">
    <div class="form-group">
        <label class="sr-only" for="texte_input">Texte en
            entrée</label><br>
        <textarea id="texte_input" class="form-control" name="texte_input"></textarea>
    </div>
    <br>
    <div class="form-group">
        <button type="submit" class="btn btn-primary">Convertir</button>
    </div>
</form>
</div>

🌘 Bootstrap

Exemple :

<script src="\{\{ url_for('static', filename='js/jquery.min.js') \}\}"></script>

(il faut enlever les \ que j’ai dû ajouter pour le site web, justement parce que j’utilise aussi du templating !)

🌘 Exemple de Bootstrap: barre de navigation

Voici un exemple de composants tiré de la librairie Bootstrap: la barre de navigation

<nav class="navbar navbar-toggleable-md navbar-inverse bg-light">
    <div class="container">
        <h1>Convertisseur point médian</h1>
    </div>
</nav>

🌘 Rendre l’application dynamique: JQuery

JQuery permet d’écrire des fonctions pour rendre l’application dynamique. Comme ça, elle ne se recharge pas à chaque fois qu’on convertit un texte.

$(document).ready(function () {
    $('form').on('submit', function (event) {
        $.ajax({
            data: {
                texte_input: $('#texte_input').val(),
            },
            type: 'POST',
            url: '/point_median'
        })
            .done(function (data) {
                $('textarea#output').
                val(data.texte_output).show();
            });
        event.preventDefault();
    });
});

🌘 Fonction appelée

Cette fonction est appelée lorsque le bouton est cliqué.

@app.route('/point_median', methods=['POST']) def call_convertir_point_median():
    texte = request.form['texte_input']
    # Règles à 3 composantes
    texte_output = convertir_point_median(texte)
    return jsonify({'texte_output': texte_output})

🌘 Docker

Diagramme d'architecture Docker utilisé pour la conteneurisation

🌘 Dockerfile

FROM python:3.10.5-slim-buster

WORKDIR /python-docker

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY templates templates
COPY app.py app.py
COPY static static

CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

🌘 CapRover

Capture d'écran de CapRover, une solution PaaS pour Docker

🌘 PaaS

Concepts et avantages des solutions PaaS (Platform as a Service)

🌘 DevOps

Le DevOps est une technique de développement logiciel qui permet d’accélérer le cycle de développement en utilisant de l’automatisation et de déploiement en continu par la même équipe.

Principes de DevOps appliqués pour une livraison efficace

🌘 GitLab

L’environnement GitLab est un logiciel en ligne qui permet la gestion de code source et la gestion de projets de développement, incluant toute la partie intégration et déploiement en continu (CI/CD) et le DevOps.

Interface utilisateur de GitLab pour la gestion de version et l'intégration continue

🌘 GitLab CI/CD

stages:
  - test
  - dockerize

🌘 Étape du test

🌘 Tests unitaires

assert convertir_point_median("invité.e") == "invité·e"

🌘 Contenu du fichier .gitlab-ci.yml pour l’étape de test

test-cases:
  stage: test
  image: python:3
  before_script:
    - pip install -r requirements.txt
  script:
    - pytest test.py

🌘 Git

git commit -m "voici des modifications" git push origin main

🌘 Ressources

Shooting Stars IconConsultation ExpressShooting Stars Icon

Bénéficie d'une heure de consultation dédiée avec François pour résoudre tes défis informatiques et stratégiques. Que ce soit pour la migration vers des technologies libres, la sécurisation de tes systèmes, la documentation de tes procédures, la conception de petits systèmes ou l'automatisation de tâches, cette session intensive t'offre des solutions concrètes et un plan d'action clair.

Tu seras libre ensuite de poursuivre avec un forfait de consultation sur mesure ou les programmes DéconstruIT ou Pleine Confiance

Découvre la Consultation Express.
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes