Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python:sqlalchemy [2023/12/21 07:27] marclebrun [Requête SQL] |
python:sqlalchemy [2023/12/22 08:34] (Version actuelle) marclebrun [Configuration de la connexion] |
||
---|---|---|---|
Ligne 43: | Ligne 43: | ||
dbpath, | dbpath, | ||
fb_library_name | fb_library_name | ||
- | ) | + | )) |
</code> | </code> | ||
===== Requêtes SQL ===== | ===== Requêtes SQL ===== | ||
+ | |||
+ | Requête Select : | ||
<code python> | <code python> | ||
Ligne 53: | Ligne 55: | ||
with engine.connect() as conn: | with engine.connect() as conn: | ||
result = conn.execute(text("select id, nom from clients order by nom")) | result = conn.execute(text("select id, nom from clients order by nom")) | ||
+ | | ||
+ | # Afficher tous les résultats dans une liste de tuples : | ||
print(result.all()) | print(result.all()) | ||
+ | | ||
+ | # Parcourir le résultat et afficher les lignes individuellement : | ||
+ | for row in result: | ||
+ | print(f"{row.id} : {row.nom.strip()}") | ||
</code> | </code> | ||
+ | |||
+ | Requêtes transactionnelles avec un **commit()** à la fin : | ||
<code python> | <code python> | ||
Ligne 66: | Ligne 76: | ||
) | ) | ||
conn.commit() | conn.commit() | ||
+ | </code> | ||
+ | |||
+ | Requêtes transactionnelles dans un bloc **begin()** (le commit se fait implicitement) : | ||
+ | |||
+ | <code python> | ||
+ | from sqlalchemy import text | ||
+ | |||
+ | with engine.begin() as conn: | ||
+ | conn.execute( | ||
+ | text("INSERT INTO some_table (x, y) VALUES (:x, :y)"), | ||
+ | [{"x": 1, "y": 1}, {"x": 2, "y": 4}], | ||
+ | ) | ||
</code> | </code> | ||