<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.phobos-net.fr/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.phobos-net.fr/feed.php">
        <title>wikinotes</title>
        <description></description>
        <link>https://wiki.phobos-net.fr/</link>
        <image rdf:resource="https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-06T14:05:03+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/introduction?rev=1740669954&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/documentation_du_code?rev=1672788575&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/blueprints?rev=1775377302&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/tests_unitaires_via_pytest?rev=1753628163&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/environnement_virtuel_avec_git?rev=1753090397&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/serialisation_json?rev=1732206470&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/notes?rev=1775392258&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/gestion-des-bibliotheques?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-du-temps?rev=1671980764&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/mqtt?rev=1671580474&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/fichier_dunder-init?rev=1752651702&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/mots_cles?rev=1753633859&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/yield_et_generateurs?rev=1753295319&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/lister_fichiers?rev=1728925602&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/demarrer_application?rev=1753608365&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/charger_fichier_csv?rev=1619185181&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/reutiliser-des-variables-du-fichier-conf?rev=1759652835&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/unittest/start?rev=1658346668&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/graphe_de_serie_temporelle_via_chartjs?rev=1754316532&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/recherche_interactive?rev=1754902306&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/authentification-utilisateur-via-flask-login?rev=1756406298&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/soft_delete?rev=1754249178&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/calculer-distance-via-coordonnees?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/callable?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/deplacer_environnement_virtuel?rev=1739987124&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/dictionnaires?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/executer_commande_systeme?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/generer_des_qr_codes?rev=1698945918&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/generer-binaire-autonome?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/generer-chaine-aleatoire?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/py-yamal?rev=1639521971&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pyflakes?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/suivi_de_projets_python_avec_git?rev=1639660143&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/web_frameworks?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/convention_nommage_variables?rev=1753097887&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/echappement_accolades_f-strings?rev=1670977171&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/listes?rev=1701270506&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/sequences?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_booleen?rev=1701422851&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_none?rev=1728980341&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/creer_type_exception?rev=1672234857&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/modifier_fichier_docx?rev=1728943531&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/tester_existance_fichier?rev=1729167885&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/version_interpreteur?rev=1698680373&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/application_multilingue?rev=1754890535&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/messages?rev=1754746744&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/telechargement_de_fichier?rev=1730838981&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/transmettre_objets_python_au_javascript?rev=1732198017&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/generer_graphique_matplotlib?rev=1619192222&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pytest/initialiser_et_detruire_environnement_de_test?rev=1729093508&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pytest/tester_les_exceptions?rev=1729181337&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/installation?rev=1697973858&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/frameworks/flask/integrer-documentation-sphinx-dans-application-flask?rev=1759660420&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico">
        <title>wikinotes</title>
        <link>https://wiki.phobos-net.fr/</link>
        <url>https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-10T08:22:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:routage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff</link>
        <description>dev python flask routes

Flask : routage

A propos des routes

Définir une URL ayant un sens pour l&#039;utilisateur est préférable en général. Les deux URL ci-dessous peuvent produire le même résultat :

	*  &lt;https://www.example.com/script?action=33257&gt;
	*  &lt;https://www.example.com/create/user&gt;

Dans le second cas, on peut directement comprendre le sens de l&#039;action à la lecture de l&#039;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-28T18:35:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_sqlalchemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff</link>
        <description>dev python orm flask sqlachemy

:TODO_DOCUPDATE:

L&#039;extension Flask-SQLAlchemy

A propos de SQLAlchemy

SQLAlchemy est un ORM (Object-Relational Mapping) il permet de traduire les objets Python en données pouvant être enregistrées dans un SGBD externe. 

Installation

Pour pouvoir utiliser l&#039;extension, installer le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/introduction?rev=1740669954&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-27T15:25:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:sphinx:introduction</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/introduction?rev=1740669954&amp;do=diff</link>
        <description>dev python sphinx documentation

Sphinx : Générer de la documentation

Sphinx est un programme dédié à la génération de tout type de documentation associée à un projet:

	*  La documentation de référence du code (documentation des modules, classes et APIs);
	*  les tutoriaux (documentation à objectifs pédagogiques);</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/documentation_du_code?rev=1672788575&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-03T23:29:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:documentation_du_code</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/documentation_du_code?rev=1672788575&amp;do=diff</link>
        <description>dev python code documentation

:TODO_DOCUPDATE:

Python : Génération de la documentation

La documentation embarquée dans le code (les docstrings) peut être extraite et mise en forme par le module pydoc.

Les conventions d&#039;écriture des docstring sont abordées dans la PEP 257.

Les annotations de types (type hinting) participent également à la lisibilité et la documentation du code.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/blueprints?rev=1775377302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T08:21:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:blueprints</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/blueprints?rev=1775377302&amp;do=diff</link>
        <description>dev python flask blueprint

Flask : usage des Blueprints

Références

	*  Utilisation des Blueprints Flask (python-3.com)
	*   Les Blueprints Flask (geeksforgeeks.org)
	*  vidéo Introduction aux Blueprints Flask (chaine Pretty Printed youtube.com)
	*  vidéo Utilisation des blueprints Flask (chaine Tech With Tim (youtube.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-12T10:26:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_formulaires_wtforms</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff</link>
        <description>dev python flask web formulaire

:TODO_DOCUPDATE:

Flask : Créer des formulaires via Flask-WTF

WTForms est une bibliothèque Python permettant de gérer des formulaires web via des Classes et objets en POO.

Ici on utilise le paquet Flask-WTF qui intègre la bibliothèque WTForms au micro framework Flask.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-07T05:09:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:exemples:redirections</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff</link>
        <description>dev python flask redirection

Flask : redirections

Le framework Flask propose la fonction redirect(). Pour les redirections internes, on l&#039;utilise conjointement à la fonction url_for() :


from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route(&#039;/&#039;)
def home():
    return &#039;Welcome to Home Page&#039;

# Redirection externe
@app.route(&#039;/goto/sponsor/example_dot_com&#039;)
def external_redirect():
    return redirect(&#039;https://www.example.com&#039;)

# Redirection interne
@app.route(&#039;/test-p…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-05T22:16:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_many-to-many</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff</link>
        <description>dev python flask orm db sqlalchemy

Flask-SQLAlchemy : Mise en œuvre d&#039;une relation many-to-many

:TODO:

Suppression des enregistrements orphelins dans une association many-to-many

Un cas typique est la gestion des étiquettes (tags) ou des mots-clés (keywords).

Dans cet exemple on souhaite pouvoir associer des mots-clés à des jeux :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T08:09:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:architecture_projet_flask</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff</link>
        <description>dev python flask web api

Flask

:TODO_DOCUPDATE:

Flask n&#039;impose aucune arborescence, selon les besoins on peut opter pour une application monolithique ou modulaire.

Application monolithique

Pour les petit projets, les tests ou les tutoriaux, on utilise généralement un simple module Python qui se charge d&#039; instancier directement l&#039;objet Flask. Cette approche monolithique permet de coder rapidement une preuve de concept (PoC), un prototype par exemple.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T12:55:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:definir_commande_cli</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff</link>
        <description>dev python flask cli commande

Flask : Définir une commande CLI

Le framework Flask s&#039;appuie sur le paquetage Python Click pour la gestion de la ligne de commande.

On utilise les décorateurs pour déclarer une commande. Ci-dessous un exemple simple de commande sans argument :


from flask import Flask

app = Flask(__name__)

@app.cli.command(&quot;version&quot;)
def version():
  &quot;&quot;&quot;Show application version.&quot;&quot;&quot; 
  print(&quot;0.0.1&quot;)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-10T06:09:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:templates</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff</link>
        <description>dev python flask templates jinja2

Flask : Utilisation des templates

Généralités

Grossièrement, le template est une page web à trous. Il contient des sections invariantes en HTML/javascript directement interprétables par le navigateur web et des sections dynamiques ou non remplies désignées</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T09:13:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_chaines_de_caracteres</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff</link>
        <description>dev python caracteres

:TODO_DOCUPDATE:

Python: Les chaînes de caractères

En python caractère et chaîne de caractères sont des objets de type str. Les chaînes de caractères sont des objets immuables: une fois crées elles ne peuvent plus être modifiées. Les méthodes permettant d&#039;altérer les chaînes retournent donc un nouvel objet str.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-20T15:03:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:variables_environnement</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff</link>
        <description>dev python variable environnement

Python : Gestion des variables d&#039;environnement

Plusieurs solutions pour définir des variables d&#039;environnement en Python :

	*  Créer un fichier .env ;
	*  Éditer le fichier activate de l&#039;environnement virtuel Python ;
	*  Utiliser le Dockerfile si le projet s&#039;appuie sur Docker.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/tests_unitaires_via_pytest?rev=1753628163&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-27T14:56:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:tests_unitaires_via_pytest</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/tests_unitaires_via_pytest?rev=1753628163&amp;do=diff</link>
        <description>dev python test pytest

:TODO_DOCUPDATE:

Flask : tests unitaires avec pytest

Flask s&#039;appuie sur le framework pytest pour créer et exécuter les tests.

Nomenclature

Par défaut les tests sont regroupés dans le dossier ./tests du projet. Les tests sont des fonctions dont le nom commence par</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-20T11:03:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask_maintenance</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff</link>
        <description>dev python framework flask extension

:TODO_DOCUPDATE:

Flask: extension Flask-Maintenance

L&#039;extensions Flask-Maintenance permet de bloquer temporairement les requêtes entrantes (frontend).

Pour illustrer son fonctionnement, on utilise ici une application Flask monolithique minimale. Depuis votre environnement virtuel Python :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-31T09:10:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:activer-contraintes-fk-sqlite-avec-flask-sqlachemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff</link>
        <description>dev python web flask sqlalchemy flas-sqlachemy

Flask-SQLAlchemy : Forcer la vérification des contraintes sur une base SQLite3

Notes concernant l&#039;activation des contraintes sur clé étrangère (FK) sur les bases de type SQLite3 utilisées en backend via Flask-SQLAlchemy.

Problématique

Une contrainte de type</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-03T10:43:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_one-to-many</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff</link>
        <description>dev python flask orm db sqlalchemy

:TODO_DOCUPDATE:

Flask-SQLAlchemy : relation one-to-many

Quelques notes à propos de l&#039;implémentation d&#039;une relation un à plusieurs (one to many) avec l&#039;extension Flask-SQLAlchemy.

Pour illustrer le concept on prend un exemple rudimentaire :


MCD via diagramme UML</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/environnement_virtuel_avec_git?rev=1753090397&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T09:33:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:environnement_virtuel_avec_git</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/environnement_virtuel_avec_git?rev=1753090397&amp;do=diff</link>
        <description>dev python venv git

Python : environnement virtuel dans Git

L&#039;environnement virtuel est créé afin de garantir une isolation des dépendances nécessaires au bon fonctionnement du programme Python. Ainsi, les mises à jours des bibliothèques du système ne remplaceront pas les versions nécessaires au bon fonctionnement de l&#039;application.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-28T13:27:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pip</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff</link>
        <description>dev python pip

pip

pip est un outil de gestion des bibliothèques externes Python. Il permet:

	*  Installer les bibliothèques et les dépendances.
	*  Mettre à jour/downgrader les versions.
	*  Facilite le déploiement d&#039;une application en générant un listing des bibliothèques utilisées et leurs versions</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-07T16:40:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:snmp</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff</link>
        <description>dev python snmp get

Python : Interroger un agent SNMP

PySNMP est un module open-source Python prenant en charge toutes les versions du protocole SNMP et permettant d&#039;agir autant comme manager que comme agent.

Installation

Méthode standard, depuis l&#039;environnement virtuel on utilise pip:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/serialisation_json?rev=1732206470&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-21T16:27:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:serialisation_json</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/serialisation_json?rev=1732206470&amp;do=diff</link>
        <description>dev python json serialisation javascript

:TODO_DOCUPDATE:

Sérialiser un type(classe) quelconque en JSON

Si on tente de sérialiser directement une instance d&#039;une classe de son cru via le module json on obtient en général une erreur :

Dans cet exemple le type Memo est une Classe complexe conçue pour une application Flask et permettant d&#039;enregistrer les données dans une base via l&#039;ORM SQLAlchemy</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/notes?rev=1775392258&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T12:30:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:notes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/notes?rev=1775392258&amp;do=diff</link>
        <description>dev python web flask extensions

Flask : A propos des extensions

Les extensions sont des packages Python ajoutant des fonctionnalités au framework Flask. On liste ici quelques extensions couramment utilisées.

	*  Flask-Admin - Interface d&#039;administration
	*  Flask-Babel - Support de l&#039;internationalisation</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T09:43:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:environnements_virtuels</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff</link>
        <description>dev python virtualenv venv environnement virtuel

Environnements virtuels en Python

Plusieurs solutions existent. Depuis python 3.3 la bibliothèque venv est intégrée, c&#039;est la solution recommandée avec Python3, l&#039;usage de virtualenv est déprécié ou réservé à des besoins spécifiques.

virtualenv</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/gestion-des-bibliotheques?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:gestion-des-bibliotheques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/gestion-des-bibliotheques?rev=1612216289&amp;do=diff</link>
        <description>dev python paquetage bibliotheque package library

Gestion des bibliothèques avec pip

Les nombreuses bibliothèques Python sont centralisées et accessibles sur un dépôt en ligne répondant au doux nom de PyPI (Python Package Index). Les opérations de téléchargement, d&#039;installation, de mises à jour ou de suppression des bibliothèques se font via l&#039;outil</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-15T14:03:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:logging</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff</link>
        <description>Les logs en Python

La bibliothèque standard python intègre un module simple et flexible pour générer ses logs. 

Lorsqu&#039;on utilise directement les fonctions au niveau du module, on utilise en fait le logger par défaut root qui est configuré pour écrire sur la sortie erreur standard.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:manipulation-de-fichiers</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff</link>
        <description>dev python fichier file

Manipulation des fichiers en python

Pour manipuler aisément les fichiers il faut avoir abordé 3 notions:

	*  l&#039;encodage
	*  l&#039;itération
	*  le context manager

Écrire du texte dans un fichier

Pour lire et écrire du texte dans les fichiers, il faut spécifier correctement l&#039;encodage. L&#039;objet fichier est créé avec la fonction built-in open(), il se chargera d&#039;encoder/décoder les caractères en fonction de l&#039;encodage choisit:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-du-temps?rev=1671980764&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-25T15:06:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:manipulation-du-temps</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-du-temps?rev=1671980764&amp;do=diff</link>
        <description>dev python temps date

Manipulation du temps en python

Plusieurs modules permettent de manipuler le temps en Python:

	*  datetime
	*  time
	*  calendar

Module time


import time
help(time)


Le temps est représenté via le tuple time_struct:


now = time.gmtime()
type(now)
  time.struct_time
print(now)
  time.struct_time(tm_year=2018, tm_mon=5, tm_mday=1, tm_hour=9, tm_min=10, tm_sec=35, tm_wday=1, tm_yday=121, tm_isdst=0)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/mqtt?rev=1671580474&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-20T23:54:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:mqtt</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/mqtt?rev=1671580474&amp;do=diff</link>
        <description>dev python mqtt iot

Python : Communication MQTT

Le projet Eclipse Paho vise à créer des implémentations open source du protocole MQTT pour différents langages de programmation (C, Python, Arduino, Java, JavaScript, C#, etc.).

Le projet propose un client MQTT en Python</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/fichier_dunder-init?rev=1752651702&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-16T07:41:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:fichier_dunder-init</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/fichier_dunder-init?rev=1752651702&amp;do=diff</link>
        <description>dev python init

:TODO:

Python : le fichier __init__.py

Références

	*  A quoi sert le fichier Python __init__.py (realpython.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-03T14:40:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:module_et_paquetage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff</link>
        <description>dev python module package

:TODO_DOCUPDATE:

Python : module et package

Généralités à propos des modules Python

Il y a 3 types de modules que l&#039;on peut d&#039;intégrer à son code :

	*  Un module écrit en Python ;
	*  Un module écrit en C et chargé dynamiquement comme le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/mots_cles?rev=1753633859&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-27T16:30:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:mots_cles</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/mots_cles?rev=1753633859&amp;do=diff</link>
        <description>dev python keywords

Python : Lister les mots réservés du langage

Depuis l&#039;interpréteur, on peut lister les mots clés Python (ou mots réservés du langage) :


&gt;&gt;&gt; import keyword
&gt;&gt;&gt; keyword.kwlist


Références

	*  Lister les mots clés Python (stackoverflow.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/yield_et_generateurs?rev=1753295319&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-23T18:28:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:yield_et_generateurs</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/yield_et_generateurs?rev=1753295319&amp;do=diff</link>
        <description>dev python generator yield

Python : yield et fonction générateur

Références

	*  Vidéo Python : Mise en œuvre d&#039;un générateur (youtube.com @DominiqueLiard06)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/lister_fichiers?rev=1728925602&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-14T17:06:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:lister_fichiers</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/lister_fichiers?rev=1728925602&amp;do=diff</link>
        <description>dev code python files directory repertoire fichier list

:TODO_DOCUPDATE:

Python3 : Lister les fichiers d&#039;un répertoire

Références

	*  &lt;https://realpython.com/get-all-files-in-directory-python/&gt;
	*  &lt;https://stackoverflow.com/questions/14176166/list-only-files-in-a-directory&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/demarrer_application?rev=1753608365&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-27T09:26:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:demarrer_application</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/demarrer_application?rev=1753608365&amp;do=diff</link>
        <description>dev python framework flask

Flask : Démarrer l&#039;application depuis la CLI

La commande flask permet notamment d&#039;exécuter l&#039;application sur un serveur de développement intégré au framework ou de démarrer un shell interactif dans le contexte de l&#039;application.

Par défaut la commande tente d&#039;importer un module ou un paquetage nommé</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/charger_fichier_csv?rev=1619185181&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-23T13:39:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:jupyter-notebook:charger_fichier_csv</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/charger_fichier_csv?rev=1619185181&amp;do=diff</link>
        <description>dev data jupyter python csv

Jupyter Notebook: Charger des données au format CSV


import pandas as pd

# Load CSV to data frame
df = pd.read_csv(&quot;./data.csv&quot;, encoding=&quot;utf8&quot;, header=None, sep=&quot;,&quot;)


La documentation de pandas détaille les différents paramètres de la méthode à l&#039;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/reutiliser-des-variables-du-fichier-conf?rev=1759652835&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-05T08:27:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:sphinx:reutiliser-des-variables-du-fichier-conf</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/reutiliser-des-variables-du-fichier-conf?rev=1759652835&amp;do=diff</link>
        <description>dev python sphinx documentation

Sphinx : Utiliser les variables du fichier de configuration dans la documentation

Le fichier de configuration de Sphinx définit un ensemble de variables qu&#039;il peut être pratique de pouvoir exploiter dans la documentation comme project ou release.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/unittest/start?rev=1658346668&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-20T19:51:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:unittest:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/unittest/start?rev=1658346668&amp;do=diff</link>
        <description>dev python test unittest

Tests unitaires en python avec unittest

Généralités

unittest est un framework de test unitaires, c&#039;est une implémentation Python des frameworks de type xUnit inspirés de SUnit(Smalltalk&#039;s SUnit), conçu par Kent Beck in 1998 pour le langage orienté objet Smalltalk.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/graphe_de_serie_temporelle_via_chartjs?rev=1754316532&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-04T14:08:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:exemples:graphe_de_serie_temporelle_via_chartjs</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/graphe_de_serie_temporelle_via_chartjs?rev=1754316532&amp;do=diff</link>
        <description>dev python flask chart.js graphique graphe

Flask : Afficher une série temporelle avec Chart.js

Références

	*  Rendu de séries temporelles avec Flask, Bootstrap et Chart.js (peterspython.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/recherche_interactive?rev=1754902306&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T08:51:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:exemples:recherche_interactive</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/recherche_interactive?rev=1754902306&amp;do=diff</link>
        <description>dev python flask recherche

Flask : Recherche dynamique basé sur HTMX

:TODO:

Références

	*  Recherche dynamique avec HTMX (htmx.org)
	*  Mise en œuvre d&#039;une recherche rapide avec Flask, Bulma et HTMX
	*  vidéo Créer une barre de recherche rapide avec Flask et HTMX (chaine Pretty Printed, youtube.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/authentification-utilisateur-via-flask-login?rev=1756406298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-28T18:38:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:authentification-utilisateur-via-flask-login</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/authentification-utilisateur-via-flask-login?rev=1756406298&amp;do=diff</link>
        <description>dev python flask authentification

:TODO:

Flask : Gérer l&#039;authentification avec Flask-Login

Charger l&#039;environnement virtuel Python du projet et installer le paquetage Flask-Login :


pip install Flask-Login


Création d&#039;un Blueprint

On va s&#039;appuyer sur le système de Blueprint de Flask afin de pouvoir regrouper les ressources et fonctionnalités liées à l&#039;authentification. De cette manière les templates, routes, modèles, formulaires etc peuvent être regroupés au sein d&#039;un package Python puis fa…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-10T13:07:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask_migrate</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff</link>
        <description>dev python flask extension db migrate migration

Flask : Gérer les migrations avec l&#039;extension Flask-Migrate

Présentation

Flask-Migrate s&#039;appuie sur Alembic pour gérer les migrations de la base de données gérée par l&#039;ORM (SQLAlchemy). Ainsi le modèle de données définit dans l&#039;application Flask peut être amendé/corrigé, c&#039;est l&#039;extension Flask-Migrate qui se chargera de créer les script de migrations capables de modifier le schéma de la base de données préexistante pour que le nouveau modèle de…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/soft_delete?rev=1754249178&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-03T19:26:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:soft_delete</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/soft_delete?rev=1754249178&amp;do=diff</link>
        <description>dev python flask sqlalchemy delete

Flask-SQLAlchemy : Mise en oeuvre du concept Soft delete

:TODO:

Références

	*  Mise en œuvre du soft delete avec flask et sqlalchemy (miguelgrinberg.com)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-28T18:35:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff</link>
        <description>dev python sql sqlalchemy

Afficher les requêtes produites par l&#039;ORM SQLAlchemy

La variable de configuration SQLALCHEMY_ECHO

Lorsqu&#039;on utilise l&#039;extension Flask-SQLAlchemy, on peut afficher un retour des requêtes produites par l&#039;ORM sur la console en utilisant la variable de configuration</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-02T15:54:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:annotations</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff</link>
        <description>dev python

Python: Annotations de type

Les annotations de type (type hinting) fournissent des méta-informations sur le type d&#039;un paramètre dans la définition d&#039;une fonction ou d&#039;une méthode en Python.

	*  L&#039;annotation est optionnelle
	*  L&#039;annotation doit être une expression Python valide. Elle est évaluée une seule fois au chargement du module, le résultat est accessible via l&#039;attribut</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/calculer-distance-via-coordonnees?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:calculer-distance-via-coordonnees</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/calculer-distance-via-coordonnees?rev=1612216289&amp;do=diff</link>
        <description>dev python distance

Calculer une distance à partir de coordonnées


import geopy.distance

coords_1 = (52.2296756, 21.0122287)
coords_2 = (52.406374, 16.9251681)

print geopy.distance.vincenty(coords_1, coords_2).km


Références

	*  &lt;https://stackoverflow.com/questions/19412462/getting-distance-between-two-points-based-on-latitude-longitude&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/callable?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:callable</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/callable?rev=1612216289&amp;do=diff</link>
        <description>dev python callable

Les Callables

En Python, tout objet exécutable est un callable, cela comprend:

	*  Les fonctions/méthodes natives ou built-in
	*  Les fonctions/méthodes définies par l&#039;utilisateur user-defined
	*  Toute instance dont la classe possède un méthode</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:caracteres-et-encodage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff</link>
        <description>dev python charset caracteres encodage encoding

Jeux de caractères et encodage avec python

Le PEP 263 détaille les problématiques liées à l&#039;encodage de caractères en Python et la directive coding.

Encodage par défaut

Il est possible de récupérer l&#039;encodage par défaut utilisé par le système courant via le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:debogage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff</link>
        <description>dev python debug debogage

Outils de débogage avec python

Outils d&#039;analyse statique

Analysent le script/module et détectent les anomalies

	*  pylint
	*  pychecker
	*  pyflakes
	*  pep8
	*  flake8
	*  mypy: outil standard d&#039;analyse statique du typage

pyflakes

pyflakes est un outil simple capable de détecter les erreurs de syntaxe, les fautes de frappe notamment dans les noms de variables, les imports manquants ou inutilisés. Il peut être intégré à l&#039;EDI notamment à Vim :)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/deplacer_environnement_virtuel?rev=1739987124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-19T17:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:deplacer_environnement_virtuel</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/deplacer_environnement_virtuel?rev=1739987124&amp;do=diff</link>
        <description>dev python venv

:TODO_DOCUPDATE:

Python : déplacer l&#039;environnement virtuel

Plusieurs solutions :

	*  Recréer l&#039;environnement ;
	*  Laisser l&#039;environnement en place mais créer un lien symbolique ;

Références

	*  &lt;https://stackoverflow.com/questions/32407365/can-i-move-a-virtualenv&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/dictionnaires?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:dictionnaires</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/dictionnaires?rev=1612216289&amp;do=diff</link>
        <description>dev python dictionnaire

Les dictionnaires en python

Les dictionnaires en Python correspondent à ce que dans d&#039;autres langages on nomme tableaux associatifs (associative array). C&#039;est une correspondance un a un entre une clé et une valeur.

Références

	*  &lt;http://www.science-emergence.com/Articles/Utiliser-les-dictionnaires-de-python-tutoriel/&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-28T18:03:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:entetes_de_scripts</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff</link>
        <description>dev python headers entetes

:TODO_DOCUPDATE:

Python : utilisation d&#039;entêtes

Des entêtes (headers) peuvent être utilisées sur certains scripts notamment pour :

	*  Aider le système d&#039;exploitation à correctement démarrer l&#039;exécution d&#039;un script ;
	*  Déterminer le jeu de caractères utilisé pour écrire le script afin de l&#039;interpréter correctement.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/executer_commande_systeme?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:executer_commande_systeme</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/executer_commande_systeme?rev=1612216289&amp;do=diff</link>
        <description>dev python command sysadmin

Python: Invoquer une commande

Pour invoquer une commande depuis un script, si les valeurs retournées sur stdout et stderr n&#039;ont pas d&#039;importance, le plus simple:


from os import system as run_command

# La commande a exécuter
cmd=r&#039;whereis snmpget&#039;

# res sauvegarde la valeur de retour de la commande 
res = run_command(cmd)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/generer_des_qr_codes?rev=1698945918&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-02T17:25:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:generer_des_qr_codes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/generer_des_qr_codes?rev=1698945918&amp;do=diff</link>
        <description>dev python qr-code

:TODO:

Python : Générer un QR code

Références

	*  Tutoriel Python : générer un QR code</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/generer-binaire-autonome?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:generer-binaire-autonome</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/generer-binaire-autonome?rev=1612216289&amp;do=diff</link>
        <description>dev python standalone

Générer un binaire autonome

Il existe  plusieurs outils permettant de générer un fichier exécutable indépendant à partir d&#039;un script python. L&#039;outil recommandé car simple et cross-plateforme est pyinstaller. Les principaux outils cités:

	*</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/generer-chaine-aleatoire?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:generer-chaine-aleatoire</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/generer-chaine-aleatoire?rev=1612216289&amp;do=diff</link>
        <description>dev python

Générer aléatoirement une chaîne alpha-numérique

Deux modules à importer: string et random

Références

	*  &lt;http://stackoverflow.com/questions/2257441/random-string-generation-with-upper-case-letters-and-digits-in-python&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:operateur-etoile</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff</link>
        <description>dev python splat etoile

Opérateur étoile avec Python

Unpacking des paramètres effectifs

Lorsque l&#039;opérateur est placé devant un argument effectif sur un appel de fonction, chaque valeur de la variable est passé à un paramètre différent de la fonction. Il doit y avoir correspondance entre le nombre d&#039;éléments de la variables et le nombre de paramètres de la fonction:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/py-yamal?rev=1639521971&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-14T22:46:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:py-yamal</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/py-yamal?rev=1639521971&amp;do=diff</link>
        <description>dev python yaml

pyYAML

La bibliothèque pyYAML permet d&#039;utiliser le formalise YAML dans les applications Python.

Installation

pip3


# Crééer/activer l&#039;environnement virtuel
source &quot;./env/bin/activate&quot;

# Installer le module via pip
pip3 install pyyaml


tarball</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pyflakes?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pyflakes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pyflakes?rev=1612216289&amp;do=diff</link>
        <description>pyflakes

Installation


$ pip install --upgrade pyflakes


Utilisation

Pour vérifier le code, il suffit d&#039;invoquer pyflakes avec en argument le script a vérifier. Il retourne sur la sortie standard les anomalies détectées:


$ pyflakes ./mon-script.py</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-02T23:31:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:sqlalchemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff</link>
        <description>:TODO_DOCUPDATE:

SQLAlchemy

L&#039; ORM est une technique employée par les langages orientés objets permettant de convertir des données entre systèmes ayant des types de données incompatibles.

Les langages orientés objets tels que Python permettent de définir des types non-scalaires qui ne peuvent pas être exprimés directement en types primitifs tels que des entiers ou des chaînes de caractères. Par exemple un objet de type</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff</link>
        <description>dev python

Python: introduction

Quelques notes à propos des spécificités du langage Python basées sur mes écueils.

Python a été conçu avec l&#039;objectif d&#039;être lisible, compréhensible faciitant son accès et les échanges de codes. Les choix de conceptions ont été guidés par pragmatisme et non par dogmatisme.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/suivi_de_projets_python_avec_git?rev=1639660143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-16T13:09:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:suivi_de_projets_python_avec_git</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/suivi_de_projets_python_avec_git?rev=1639660143&amp;do=diff</link>
        <description>dev git python todo

Configurer Git pour suivre un projet Python

Environnements virtuels

Le wiki détaille l

.gitignore


__pycache__
*.py[cod]
*$py.class

# Distribution / packaging 
.Python build/ 
develop-eggs/ 
dist/ 
downloads/ 
eggs/ 
.eggs/ 
lib/ 
lib64/ 
parts/ 
sdist/ 
var/ 
wheels/ 
*.egg-info/ 
.installed.cfg 
*.egg 
*.manifest 
*.spec 

# Log files
pip-log.txt
pip-delete-this-directory.txt
*.log

# Unit test / coverage reports 
htmlcov/ 
.tox/ 
.coverage 
.coverage.* 
.cache 
.pyte…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/web_frameworks?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:web_frameworks</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/web_frameworks?rev=1612216289&amp;do=diff</link>
        <description>dev web python framework

Python: web frameworks
 Framework      Catégorie           Commentaires                                     Bottle         microframework      Parfait pour prototypage, PoC.  Flask          microframework      Intègre serveur, debogeur, tests unitaires, outils Restful</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/convention_nommage_variables?rev=1753097887&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T11:38:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:convention_nommage_variables</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/convention_nommage_variables?rev=1753097887&amp;do=diff</link>
        <description>dev python variable nommage nomenclature

:TODO_DOCUPDATE:

Python : variables et conventions de nommage

Syntaxe

En python les variables ne peuvent pas commencer par un chiffre, ne doivent pas contenir d&#039;espaces ou de caractères spéciaux. Le nom d&#039;une variable ne doit pas être identique aux mots réservés du langage :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/echappement_accolades_f-strings?rev=1670977171&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-14T00:19:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:echappement_accolades_f-strings</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/echappement_accolades_f-strings?rev=1670977171&amp;do=diff</link>
        <description>dev python f-string

Échappement des accolades dans une f-string

Pour pouvoir utiliser le caractère accolade sans qu&#039;il soit interprété par le formatage de la f-string il faut l&#039;échapper en doublant l&#039;accolade:


my_json = f&#039;{{ &quot;name&quot;:{person._name} , &quot;age&quot;:{person._age:02d}  }}&#039;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:installer_interpreteurs</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff</link>
        <description>dev python

Python: Installer différents interpréteurs

Depuis la version 3.3 de Python le module venv permet de construire un environnement virtuel. Cependant chaque version de l&#039;interpreteur construit 

L&#039; interpréteur de la distribution

Le gestionnaire de paquets de la distribution permet d&#039;installer un interpréteur près-compilé. Il est possible d&#039;afficher le détail des options de configuration utilisées lors de la compilation depuis l&#039;interpréteur:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/listes?rev=1701270506&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-29T15:08:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:listes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/listes?rev=1701270506&amp;do=diff</link>
        <description>dev python liste

Les listes en python

Une liste est un ensemble ordonné d&#039;objets. On parle de structure de données de type séquence car chaque élément est accessible via son index.

La liste peut être vue comme une généralisation des chaînes de caractères : là où la chaîne est une séquence de caractères, la liste peut contenir des valeurs de tous types : n’importe quelle valeur peut être contenue dans une liste.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/sequences?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:sequences</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/sequences?rev=1612216289&amp;do=diff</link>
        <description>dev python todo

Python: Les séquences

Les séquences regroupent un ensemble de types notamment:

	*  Les listes (list),
	*  Les tuples (tuple);
	*  Les chaînes de caractères (str),
	*  bytes (immuable), et bytearray (mutable)
	*  range objects

Une séquence est un ensemble fini et ordonné d&#039;éléments indicés à partir de 0.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-27T16:44:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:structures_de_controle</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff</link>
        <description>dev python

Structures de contrôle

Structures conditionnelles

if


if a_condition:
    # bloc a exécuter lorsque a_condition est vraie
elif other_condition:
    # bloc a exécuter lorsque a condition est fausse
    # et other_condition est vraie
else:
    # bloc a exécuter si les conditions précédentes sont fausses.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T18:35:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:tuples</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff</link>
        <description>dev python

Python: le type tuple

le tuple (traduit couple ou n-uplets) est un type builtin très proche de la liste mais immuable: c&#039;est une séquence, on peut donc y appliquer les opérations telles que:

	*  Accéder aux éléments avec l’opérateur d&#039;indexation</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_booleen?rev=1701422851&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-01T09:27:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_booleen</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_booleen?rev=1701422851&amp;do=diff</link>
        <description>dev python

Python : Le type Booléen

Le type booléen (bool) permet de représenter les valeurs True (vrai) et False (faux).

Conversions de types en booléen

Toute valeur Python peut être interprétée comme un booléen par conversion implicite. 

Quelques conversion explicites en faisant appel au type booléen :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T10:09:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_dictionnaire</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff</link>
        <description>dev cours python dictionnaire

Python: le type dictionnaire

Les dictionnaires sont des tables de hash, la principale caractéristique de cette structure de données est que les opérations (telles que l&#039;insertion ou le test d&#039;appartenance) sont indépendantes du nombre d&#039; éléments.

	*  Les dictionnaires sont des objets mutables, ils peuvent être modifiés en place.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_none?rev=1728980341&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-15T08:19:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_none</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_none?rev=1728980341&amp;do=diff</link>
        <description>dev python core type

:TODO_DOCUPDATE:

Python : Le type None

Références

	*  L&#039;objet non défini en Python</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T09:14:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:types_numeriques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff</link>
        <description>dev python types

Python: Types numériques

Les types numériques en python comprennent:

	*  Nombres entiers type int de précision illimité
	*  Les décimaux type float
	*  Les nombres complexes
	*  Les booléens type bool

Usages simples

Priorités

:TODO_DOCUPDATE:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/creer_type_exception?rev=1672234857&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-28T13:40:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:creer_type_exception</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/creer_type_exception?rev=1672234857&amp;do=diff</link>
        <description>dev python code exemple extrait snippet

:TODO_DOCUPDATE:

Python : créer un nouveau type d&#039;exception

On crée un type nouveau type d&#039;exception en héritant du type de base Exception. Dans sa forme la plus simple sans redéfinition de méthode:



class aNewException(Exception):
    pass</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/modifier_fichier_docx?rev=1728943531&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-14T22:05:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:modifier_fichier_docx</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/modifier_fichier_docx?rev=1728943531&amp;do=diff</link>
        <description>dev python file fichier word doc docx

:TODO_DOCUPDATE:

Python3 : Modifier un fichier au format docx
convertir au format docx

Télécharger et installer le module python-docx dans l&#039;environnement virtuel :


pip install python-docx






Références

	*  Utiliser le module python-docx pour modifier un document Word</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/tester_existance_fichier?rev=1729167885&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T12:24:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:tester_existance_fichier</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/tester_existance_fichier?rev=1729167885&amp;do=diff</link>
        <description>dev python exemple extrait code snippet

:TODO_DOCUPDATE:

Python : tester l&#039;existence d&#039;un fichier


from pathlib import Path

aPath = Path(&#039;/path/to/file.csv&#039;)                                                                                                                     

# Retourne True si le fichier existe
aPath.exists()</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/version_interpreteur?rev=1698680373&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-30T15:39:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:version_interpreteur</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/version_interpreteur?rev=1698680373&amp;do=diff</link>
        <description>dev python code exemple snippet

Version de l&#039;interpréteur Python

Pour récupérer la version de l&#039;interpréteur Python depuis un script en cours d&#039;exécution:


import sys

version_description = sys.version

type(version_description)
&lt;class &#039;str&#039;&gt;

print(version_description)
3.12.0 (main, Oct 21 2023, 17:44:38) [GCC 9.4.0]

# La classe sys.version_info permet d&#039;obtenir les numéros de versions : majeur, mineur, micro etc
sys.version_info.major
sys.version_info.minor
sys.version_info.micro</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/application_multilingue?rev=1754890535&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-11T05:35:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:application_multilingue</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/application_multilingue?rev=1754890535&amp;do=diff</link>
        <description>dev python multilangue internationalisation

:TODO:

Flask : internationalisation de application

Références

	*  &lt;https://www.peterspython.com/fr/blog/construire-un-site-web-multilingue-flask-avec-flask-babel&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-26T11:15:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_application_factory</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff</link>
        <description>dev python web flask

Flask : Usage de la fonction create_app

La création de l&#039;application Flask peut se faire de plusieurs manières. L&#039;utilisation de l&#039;application factory est l&#039;approche recommandée pour les projets qui gagent en envergure. Elle permet de concevoir une application plus facilement extensible et maintenable.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/messages?rev=1754746744&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-09T13:39:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:messages</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/messages?rev=1754746744&amp;do=diff</link>
        <description>dev python framework flask flash message

Flask : Gestion des messages

:TODO:

Références

	*  &lt;https://flask.palletsprojects.com/en/stable/patterns/flashing/&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/telechargement_de_fichier?rev=1730838981&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-05T20:36:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:telechargement_de_fichier</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/telechargement_de_fichier?rev=1730838981&amp;do=diff</link>
        <description>dev python flask web upload download file fichier

Flask : Upload/Download de fichiers

Les fichiers transmis sont placés dans un espace temporaire en mémoire ou dans un dossier (qui peut être obtenu via tempfile.gettempdir()). Par défaut Flask ne limite pas la taille des fichiers transmis par l&#039;utilisateur mais on peut la définir via la variable</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/transmettre_objets_python_au_javascript?rev=1732198017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-21T14:06:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:transmettre_objets_python_au_javascript</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/transmettre_objets_python_au_javascript?rev=1732198017&amp;do=diff</link>
        <description>dev python flask javascript

Flask : Transmettre des objets Python à un script Javascript du template

Depuis le contrôleur (la fonction associée à la route), on crée des objets Python qu&#039;on peut transmettre facilement au template.

Le template peut contenir du code javascript : il est parfois utile de pouvoir transmettre des objets au script afin de les exploiter côté client.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/generer_graphique_matplotlib?rev=1619192222&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-23T15:37:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:jupyter-notebook:generer_graphique_matplotlib</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/generer_graphique_matplotlib?rev=1619192222&amp;do=diff</link>
        <description>dev python jupyter graphique todo

Jupyter: Générer des graphiques avec matplotlib

Références

	*  &lt;https://towardsdatascience.com/making-plots-in-jupyter-notebook-beautiful-more-meaningful-23c8a35c0d5d&gt;
	*  &lt;https://numpy.org/doc/stable/user/absolute_beginners.html#plotting-arrays-with-matplotlib&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pygtk:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff</link>
        <description>du boot, pc rendu a Nathalie Barret. Pas de retour utilisateur. Fermeture ticket.

dev python ihm pygtk

IHM pour python avec PyGTK

Présentation générale de la conception d&#039;une application Python utilisant une IHM GTK

	*  Les classes Python modélisent les données métier et intègrent les traitements.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pytest/initialiser_et_detruire_environnement_de_test?rev=1729093508&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-16T15:45:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pytest:initialiser_et_detruire_environnement_de_test</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pytest/initialiser_et_detruire_environnement_de_test?rev=1729093508&amp;do=diff</link>
        <description>dev python test pytest setup unit unitaire

:TODO_DOCUPDATE:

Pytest : Initialisation et suppression d&#039;un environnement de test

Pour s&#039;assurer de la reproductibilité des tests unitaires, il est important de pouvoir :

	*  Initialiser / définir un contexte d&#039;exécution ;
	*  Supprimer / libérer les ressources et le contexte d&#039;exécution.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pytest/tester_les_exceptions?rev=1729181337&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T16:08:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pytest:tester_les_exceptions</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pytest/tester_les_exceptions?rev=1729181337&amp;do=diff</link>
        <description>dev python pytest exception tests unitaires

:TODO_DOCUPDATE:

Pytest : tester la levée d&#039;exception

Références

	*  &lt;https://pytest-with-eric.com/introduction/pytest-assert-exception/&gt;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/installation?rev=1697973858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-22T11:24:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:sphinx:installation</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/sphinx/installation?rev=1697973858&amp;do=diff</link>
        <description>dev python documentation sphinx

Sphinx : Installation

Sphinx utilise Python et make pour construire la documentation:


sudo apt install build-essential python3 python3-pip python3-venv


Créer et activer l&#039;environnement virtuel du projet et on installe les modules via pip3. Ici en plus du module sphinx on installe le thème</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-03T19:49:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_composition</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff</link>
        <description>dev python sql sqlalchemy relation

:TODO_DOCUPDATE:

Flask-SQLAlchemy : relation de composition

La relation de composition est une forme particulière de relation one-to-many. Le diagramme UML la représente comme ci-dessous :



	*  Une voiture (le composite) peut contenir un ou plusieurs sièges (les composants);</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/frameworks/flask/integrer-documentation-sphinx-dans-application-flask?rev=1759660420&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-05T10:33:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:frameworks:flask:integrer-documentation-sphinx-dans-application-flask</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/frameworks/flask/integrer-documentation-sphinx-dans-application-flask?rev=1759660420&amp;do=diff</link>
        <description>dev python framework sphinx flask documentation

Intégrer une documentation générée par Sphinx à l&#039;application Flask

:TODO:

Sphinx permet de générer de la documentation dans différents formats. Ici on souhaite produire de la documentation au format HTML et la servir via l&#039;application Flask.

Pour que Flask soit en mesure de servir les fichiers, on configurera Sphinx pour qu&#039;il génère les fichiers de documentation dans un sous-répertoire du dossier</description>
    </item>
</rdf:RDF>
