=====
Il y a 3 types de modules que l'on peut d'intégrer à son code :
- Un module écrit en Python ... (expressions rationnelles);
- Un module **built-in**, (intégré au langage) comme ''itertools''.
Quel que soit son type, le contenu d'un module est accessible de la même manière après appel à l'instruction **import**.
On s’intéresse ici aux modu
es
dir(msg)
dir(str)
# Afficher la documentation intégrée de la classe str
help(msg.__class__)
help(s... r les espaces ou d'autres caractères en début ou fin de chaine :
<code python>
str.strip(" Hello strip !! ")
'Hello strip !!'
# On peut spécifier... et ''title'' permettent d'obtenir une nouvelle chaine après altération de la casse :
<code python>
>>
{{tag>dev python}}
====== Python: introduction ======
Quelques notes à propos des spécificités du la... * gestion automatique de la mémoire
* langage interprété et EDI divers (notebooks IDLE etc)
=====... nce est permissive et permet de l'utiliser à des fins commerciales.
===== Évolution du langage =====
... la version 2 et la version 3. Langage stable et maintenu.
Librairie standard: ensemble des utilitair
{{tag>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 d... objectif de faire connaître ou de justifier certains choix.
Souvent on pense à Sphinx comme à un out
== Flask : Gérer l'authentification avec Flask-Login ======
Charger l'environnement virtuel Python du projet et installer le paquetage **Flask-Login** :
<code bash>
pip install Flask-Login
</code>
===== Création d'un Blueprint =====
On va s'appuye
la base de données gérée par l'ORM (SQLAlchemy). Ainsi le modèle de données définit dans l'application Flask peut être amendé/corrigé, c'est l'extension F... ate** nous allons utiliser une application Flask minimale en configuration monolithique avec une classe de modèle simple : ''Product''.
===== Installation =====
Création d'un environnement virt
{{tag>dev python flask templates jinja2}}
====== Flask : Utilisation des templates ======
===== Gé... st une page web à trous. Il contient des sections invariantes en HTML/javascript directement interprétables par le navigateur web et des sections dynamiqu... t dynamique.
**Flask** s'appuie sur le moteur **Jinja2** pour la gestion des templates. Plusieurs élé
ask-SQLAlchemy : Forcer la vérification des contraintes sur une base SQLite3 ======
Notes concernant l'activation des contraintes sur clé étrangère (FK) sur les bases de type S... LAlchemy.
===== Problématique =====
Une contrainte de type **FK**((**F**oreign **K**ey)) est définie dans notre modèle mais ne semble pas s'appliquer.
en Python ======
La bibliothèque standard python intègre un module simple et flexible pour générer se... ie erreur standard.
<code python>
>>> import logging
>>> type(logging.root)
logging.RootLogger
</code>
===== Modifier le niveau de log =====
Les niveaux disponibles: lo
. L'objet fichier est créé avec la fonction built-in open(), il se chargera d'encoder/décoder les cara... ython>
file = open('/path/to/file.txt', 'w', encoding='utf8')
for cpt in range(100):
file.write(f"ligne {cpt:4d}\n")... sont des itérateur: ils peuvent être directement intégrés à une boucle for:
<code python>
file = open
e** (traduit couple ou n-uplets) est un type builtin très proche de la liste mais **immuable**: c'est ... que:
* Accéder aux éléments avec l’opérateur d'indexation **[]** ;
* Le test d'appartenance avec **in** ;
* Faire du slicing etc
La différence fondamentale entre la liste et le tuple est que le tuple
s en POO.
Ici on utilise le paquet Flask-WTF qui intègre la bibliothèque WTForms au micro framework Flask.
===== Initialiser l'application Flask =====
Création d'un dépôt git pour le projet et initialisation de l'application Flask :
<code bash>
git init hello-wtf
cd hello-wtf/
git branch -m main
# C
nce** car chaque élément est accessible via son **index**.
La liste peut être vue comme une **généralisation des [[dev/python/core/type_chaines_de_caracteres|chaînes de caractères]]** : là où... type str
>>> tab = ['toto', 'tata']
>>> # le slicing sélectionnant toute une liste permet de copier l... >> tab is tab2
False
>>> tab == tab2
True
>>> # Inverser les éléments de tab2
>>> tab2.reverse()
>>
python:core:tables_de_hash|tables de hash]], la principale caractéristique de cette structure de données est que les opérations (telles que l'insertion ou le test d'appartenance) sont indépendantes du nombre d' éléments.
* Les dictionnaires so... ion de hash doit faire un calcul sur la clé déterminer la position dans le tableau, si l'objet mute le
{{tag>dev python snmp get}}
====== Python : Interroger un agent SNMP ======
**PySNMP** est un modul... agir autant comme manager que comme agent.
===== Installation =====
Méthode standard, depuis l'envir... onnement virtuel on utilise pip:
<code bash>
pip3 install pysnmp
</code>
===== SNMP GET =====
L'opér... t Python, il nous faut importer le module pysnmp, instancier un contrôleur et manipuler ce contrôleur