<?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-07T08:44:48+00:00</dc:date>
        <items>
            <rdf:Seq>
                <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/start?rev=1612216289&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/module_et_paquetage?rev=1730644855&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/tables_de_hash?rev=1612216289&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/core/listes?rev=1701270506&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/agencement-widgets?rev=1612216289&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/core/exceptions?rev=1729182573&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/flask/templates?rev=1775801399&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/bonnes-pratiques?rev=1612216289&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/maths-fonction-polynome?rev=1612216289&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/sequences?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_ensemble?rev=1701334991&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/flask_application_factory?rev=1753528543&amp;do=diff"/>
                <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/sphinx/installation?rev=1697973858&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/extensions/flask_migrate?rev=1757509654&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_agregation?rev=1753198299&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/conception-interfaces-graphiques?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/executer_commande_systeme?rev=1612216289&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/gestion-des-arguments?rev=1612216289&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/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/occupation_memoire?rev=1626425932&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/operation-modulo?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/sqlalchemy?rev=1733182283&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/litteraux?rev=1685365314&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/exemples/creer_type_exception?rev=1672234857&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/exemples/recuperer_adresse_mac?rev=1638102458&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/flask_gestion_des_configurations?rev=1753535392&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/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/start?rev=1612216289&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/extensions/notes?rev=1775392258&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/pygtk/widgets/start?rev=1612216289&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/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/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/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/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/tables_de_hash?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:tables_de_hash</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/tables_de_hash?rev=1612216289&amp;do=diff</link>
        <description>cour python

Python: Les tables de hash

Les tables de hash sont des structures de données particulières permettant de répondre à certaines limitations des types séquence tels que les chaînes de caractères, les listes ou tuples. Python propose deux implémentations des tables de hash: les dictionnaires et les sets (ensembles).</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/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/pygtk/agencement-widgets?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:agencement-widgets</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/agencement-widgets?rev=1612216289&amp;do=diff</link>
        <description>dev pygtk widget conteneur

Agencer les widgets

Pour organiser les différents composants de l&#039;interface graphique (widgets) PyGTK propose un système de boites (box) qui sont des conteneurs invisibles à l’intérieur desquels on insère les widgets. Il existe deux familles: les conteneurs verticaux et les horizontaux. Dans un conteneur horizontal, les objets insérés sont placés les un à la suite des autres en file indienne. Dans un conteneur vertical, les objets seront disposés verticalement les un…</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/core/exceptions?rev=1729182573&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T16:29:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:exceptions</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/exceptions?rev=1729182573&amp;do=diff</link>
        <description>dev python exceptions

Python: les exceptions

	*  Une exception n&#039;est pas une fatalité, c&#039;est un mécanisme de communication d&#039;erreur tout à fait normal dans un programme et on est capable de la capturer et d&#039;y réagir.
	*  Les exceptions fournissent de l&#039;information sur l&#039;erreur qui se produit, c&#039;est donc un mécanisme de notification d&#039;erreur très utile.</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/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/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/bonnes-pratiques?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:bonnes-pratiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/bonnes-pratiques?rev=1612216289&amp;do=diff</link>
        <description>Bonnes pratiques

Duck typing

La l&#039;oie du canard: If it looks like a duck and quacks like a duck, it must be a duck.

Dans la majorité des cas il importe peu que l&#039;objet soit une instance d&#039;un type particulier, on cherche à savoir s&#039;il a le bon comportement. On privilégiera donc l&#039;emploie de</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/maths-fonction-polynome?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:maths-fonction-polynome</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/maths-fonction-polynome?rev=1612216289&amp;do=diff</link>
        <description>Maths avec python

Représenter et résoudre une fonction polynôme du second degré avec python. Ici nous allons représenter et résoudre la fonction polynome de second degré f(x) = 2x2 +5x +3 

Installer les modules


$ sudo apt-get install python-numpy ipython</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/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/type_ensemble?rev=1701334991&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-30T09:03:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_ensemble</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_ensemble?rev=1701334991&amp;do=diff</link>
        <description>dev python set ensemble

Python: les ensembles ou sets

Les sets ou ensembles sont très proches des dictionnaires. Ils sont mutables mais à la différence des dictionnaires les sets ne stockent que des clés mais pas de valeurs.
Le set a été créé et optimisé pour des opérations spécifiques.</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/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/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/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/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/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/relation_agregation?rev=1753198299&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-22T15:31:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_agregation</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_agregation?rev=1753198299&amp;do=diff</link>
        <description>dev python sql sqlalchemy relation

Flask-SQLAlchemy : Définir une relation d&#039;agrégation

La relation d&#039;agrégation est une forme particulière de relation one-to-many. C&#039;est une composition sans appartenance : la suppression d&#039;une instance de la classe regroupant les agrégats n&#039;entraine pas la suppression des agrégats.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/conception-interfaces-graphiques?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:conception-interfaces-graphiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/conception-interfaces-graphiques?rev=1612216289&amp;do=diff</link>
        <description>Conception d&#039;interfaces graphiques

outils:

	*  glade: design intuitif d&#039;interface graphique en GTK
	*  geany: IDE
 module   techno        prérequis                        Spécificités            TKinter   tcl/Tk       aucun, intégré a Python</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/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-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/gestion-des-arguments?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-arguments</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/gestion-des-arguments?rev=1612216289&amp;do=diff</link>
        <description>dev python argument option

Python: Gestion des arguments d&#039;appel de script

Le module argparse fait partit de la bibliothèque standard python. Il contient tout ce qu&#039;il faut pour gérer les arguments passés au script via la ligne de commande. Il remplace l&#039;ancien module optparse</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/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/occupation_memoire?rev=1626425932&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-07-16T08:58:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:occupation_memoire</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/occupation_memoire?rev=1626425932&amp;do=diff</link>
        <description>dev python empreinte memoire

Python: déterminer la taille mémoire d&#039;un objet

Le module sys contient la fonction  getsizeof() qui retourne la taille d&#039;un ou plusieurs objets en Octets.


# création d&#039;un ensemble vide
&gt;&gt;&gt; t1 = ()

# le tuple (ensemble) vide ne contient aucun élément
&gt;&gt;&gt; len(t1)
0

# mais l&#039;objet tuple occupe de la mémoire
&gt;&gt;&gt; import sys                                                                                       

&gt;&gt;&gt; sys.getsizeof(t1)                                   …</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/operation-modulo?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:operation-modulo</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/operation-modulo?rev=1612216289&amp;do=diff</link>
        <description>dev python modulo

Python: opération modulo

L&#039;opération modulo est une opération binaire qui associe à deux entiers naturels le reste de la division euclidienne du premier par le second.

a,b E N et b &lt;&gt; 0. En python:


a mod b = a%b


Cas des entiers relatifs

Selon les langages, le résultat de l&#039;opération modulo appliquée aux entiers relatifs n&#039;est pas identique. Python respecte la définition mathématique de l&#039;opération:</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/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/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/litteraux?rev=1685365314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-29T13:01:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:litteraux</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/litteraux?rev=1685365314&amp;do=diff</link>
        <description>dev python

Les littéraux

En Python, le littéral désigne la notation utilisée pour définir une valeur constante sur un type de base comme la chaîne de caractères (str), la suite d&#039;octets (bytes) et même les valeurs numériques.

Pour les chaînes de caractères, le littéral est introduit par un préfixe (stringprefix) et encadré par des guillemets simples, doubles ou triples.</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/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/recuperer_adresse_mac?rev=1638102458&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-28T12:27:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:exemples:recuperer_adresse_mac</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/exemples/recuperer_adresse_mac?rev=1638102458&amp;do=diff</link>
        <description>dev python3 mac

Python3 : Récupérer l&#039;adresse MAC

Plusieurs exemples de codes permettant de récupérer l&#039;adresse MAC ou adresse matériel de l’hôte.

Module getmac

On installe le module au sein d&#039;un environnement virtuel:


# creation de l&#039; environnement virtuel
python3 -m venv py_mac_test

# charger l&#039;environnement virtuel
cd py_mac_test
source bin/activate

# mise à jour de pip
python3 -m pip install --upgrade pip

# installation du module getmac
pip3 install get-mac</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/flask_gestion_des_configurations?rev=1753535392&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-26T13:09:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_gestion_des_configurations</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_gestion_des_configurations?rev=1753535392&amp;do=diff</link>
        <description>dev python framework flask

:TODO_DOCUPDATE:

Flask : Gestion des configurations

La classe Config du framework Flask contient une méthode from_object() qui permet de charger une configuration à partir d&#039;un objet Python (une classe ou un module).

Conserver les variables de configuration dans des classes est intéressant pour les raisons suivantes :</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/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-29T11:09:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:jupyter-notebook:installation_jupyter_via_docker</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff</link>
        <description>software python jupyter jupyterlab notebook install docker todo

Installer Jupyter via Docker

Il existe plusieurs images, la version scipy-notebook inclus des packages populaires de l&#039;écosystème scientifique Python:


docker pull jupyter/scipy-notebook:python-3.9.6
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v &quot;${PWD}&quot;:/home/jovyan/work jupyter/scipy-notebook:python-3.9.6</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/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:jupyter-notebook:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/start?rev=1612216289&amp;do=diff</link>
        <description>dev python jupyter

Jupyter notebook

Le nom Jupyter vient de la contraction des 3 principaux langages utilisés dans le domaine de la data science: Julia, Python et R. L&#039;extension d&#039;un fichier notebook produit par Jupyter est .pynb pour IPython NoteBook, ancien nom du projet Jupyter.</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/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/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/pygtk/widgets/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:widgets:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/widgets/start?rev=1612216289&amp;do=diff</link>
        <description>pygtk widget

Widgets

Présentation sommaire de widgets usuels.

Button

Il existe plusieurs types de boutons. Un bouton basique a un simple label définit lors de l&#039;instanciation ou via l&#039;appel de la méthode set_label(). 


bouton1= gtk.Button(&quot;Valider&quot;)
box.pack_end(bouton1, expand=False)
bouton1.show()</description>
    </item>
</rdf:RDF>
