===== Initialisation de Flask-Migrate =====
Les commandes proposées par l'extension Flask-Migrate sont regroupées sous ''flask db''. On commence par initialiser l’environnement nécessaire à... migrate -m "Initial DB Model Product"
</code>
La commande retourne quelques messages de la forme :
<fi... on-transactional DDL.
INFO [alembic.autogenerate.compare] Detected added table 'products'
Generating
le()
'Hello World!'
</code>
''count'' permet de compter les occurrences d'un caractère ou d'une sous-... ale.
On peut tester spécifiquement si une chaîne commence ou termine par une autre avec les méthodes '... t un booléen.
Pour des recherches de motifs plus complexes au sein de chaînes de caractères se reporte... utiliser l'opérateur d'indexation ''[]''. L'index commence à zéro et peut être négatif pour parcourir l
ython a été conçu avec l'objectif d'être lisible, compréhensible faciitant son accès et les échanges de... est permissive et permet de l'utiliser à des fins commerciales.
===== Évolution du langage =====
Tout... tie en 1994. Version 2 en 2000. Grosse rupture de compatibilité entre la version 2 et la version 3. Lan... ).
Généralement pour un fichier script l’entête comprend également le chemin de l’interpréteur à appe
tifier certains choix.
Souvent on pense à Sphinx comme à un outil de génération de documentation techn... ML.
* Sphinx propose d'autres types de sorties comme PDF, ePub, man etc.
* Sphinx a besoin d'un fi... figuration (conf.py)
* Sphinx est modulaire, il comporte de nombreuses extensions facilement activabl... 'une arborescence spécifique pour fonctionner. La commande ''sphinx-quickstart'' est interactive et se
al.html|adjacency list pattern]]) qui se présente comme une table se référençant elle même (ici via la ... ''parent_id''.
Lorsqu'on teste cet objet via la commande **flask shell** on constate que la contraint... Depuis flask shell
>>> db.create_all()
>>> # Ce comportement est correct
>>> rc = Category("root")
>>... -B") )
>>>
>>> db.session.add(rc)
>>> db.session.commit()
>>>
>>> del rc
>>>
>>> # On récupère la caté
- Un module écrit en C et chargé dynamiquement comme le module ''re'' (expressions rationnelles);
- Un module **built-in**, (intégré au langage) comme ''itertools''.
Quel que soit son type, le cont... ant du code Python.
<code python mod.py>
s = "If Comrade Napoleon says it, it must be right."
a = [100... '
<code python>
from mod import s, foo
>>> s
'If Comrade Napoleon says it, it must be right.'
>>> foo
{{tag>dev python command sysadmin}}
===== Python: Invoquer une commande ======
Pour invoquer une commande depuis un script, si les valeurs retournées sur stdout et stde... imple:
<code python>
from os import system as run_command
# La commande a exécuter
cmd=r'whereis snmpg
able de configuration ''SQLALCHEMY_DATABASE_URI'' comme indiqué ci-dessous :
<code python>
# Pour util... susceptible de lever une exception
db.session.commit()
except (IntegrityError, OperationalErro... ===
* https://flask-sqlalchemy.palletsprojects.com/en/stable/
* https://docs.sqlalchemy.org/en/20/... rg/flask-sqlalchemy/
* https://www.slingacademy.com/article/solving-sqlalchemy-integrityerror-when-in
DOCUPDATE:
====== Flask-SQLAlchemy : relation de composition ======
La relation de composition est une forme particulière de [[dev:python:flask:flask-sqla... ion one-to-many]]. Le diagramme UML la représente comme ci-dessous :
{{mcd_relation_composition.png}}
* Une voiture (le composite) peut contenir un ou p
pip =====
Si des erreurs sont retournées par les commandes pip, il est possible de le remettre à jour:... un paquet =====
<code bash>
$ pip search docker-compose
</code>
===== Installer un paquet =====
<co... ottle
</code>
===== Générer un bundle =====
La commande freeze permet de lister toutes les bibliothèques et leur version, la sortie de la commande peut être redirigée dans un fichier puis réu
lisés, alors on veut les supprimer également.
Ce comportement de suppression des enregistrements orphe... **SQLAlchemy-Utils** permet de mettre en œuvre se comportement via sa fonction **auto_delete_orphans**.... Références =====
* [[https://www.digitalocean.com/community/tutorials/how-to-use-many-to-many-database-relationships-with-flask-sqlalchemy|Comment utili
db.session.add(self)
db.session.commit()
product.shop_id = self.id
db.session.add(product)
db.session.commit()
class Product(db.Model):
__tablename__... __name__ pour définir le nom du module courant
# comme root applicatif pour notre application flask
ap... roducts'' **ne retourne plus directement la liste complète** de tous les produits désignés par la relat
ent à la lisibilité et la documentation du code.
Comme pour les commentaires, la recommandation de longueur de ligne d'une docstring est de 72 caractères.
...
Le formatage général recommandé d'une docstring comprend:
* La description brève
* Un saut de lig... iers peuvent être utilisés au sein de la doctring comme **reStructuredText**. Ils sont ensuite exploité
ons du protocole SNMP et permettant d'agir autant comme manager que comme agent.
===== Installation =====
Méthode standard, depuis l'environnement virtuel... ir de multiples OIDs. Chaque dictionnaire a ainsi comme clé l'OID et comme valeur la valeur retournée par la cible.
Le résultat retourné par fetch() est un
ssible via son **index**.
La liste peut être vue comme une **généralisation des [[dev/python/core/type... = list()
</code>
===== Taille d'une liste =====
Comme pour les chaînes de caractères, la fonction **'... avec une autre liste).
* **count()** détermine combien de fois un élément est présent dans la liste.... emin valide vers un fichier ou un dossier.
===== Compréhensions de listes =====
Les listes sont large