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
===== 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
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... est interpréteur proposant des couleurs, de l'autocomplétion, une documentation en ligne. Il offre un m
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
- 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
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é
: Démarrer l'application depuis la CLI ======
La commande **flask** permet notamment d'exécuter l'appl... dans le contexte de l'application.
Par défaut la commande tente d'importer un module ou un paquetage n... nt pas ces noms par défaut, on devra fournir à la commande flask le moyen de lancer correctement l'appl... cation via l'option ''%%--app%%''.
Dans sa forme complète, la valeur de l'option %%--app%% contient 3
{{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
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.
* class docs... entation d'un niveau
*
Le formatage général recommandé d'une docstring comprend:
* La description
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
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
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