Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
python:flask:flask_sqlalchemy:requetes_select [2022/11/14 14:50] marclebrun créée |
python:flask:flask_sqlalchemy:requetes_select [2023/04/15 08:23] (Version actuelle) marclebrun [query.filter()] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
Source: [[https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/queries/]] | Source: [[https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/queries/]] | ||
+ | |||
+ | ===== query.get() ===== | ||
**SELECT** selon un ID : | **SELECT** selon un ID : | ||
Ligne 8: | Ligne 10: | ||
user = User.query.get(5) | user = User.query.get(5) | ||
</code> | </code> | ||
+ | |||
+ | ===== query.filter_by() ===== | ||
**SELECT** selon le contenu d'un champ : | **SELECT** selon le contenu d'un champ : | ||
Ligne 15: | Ligne 19: | ||
user = User.query.filter_by(name = 'Marc').one() | user = User.query.filter_by(name = 'Marc').one() | ||
</code> | </code> | ||
+ | |||
+ | ===== query.filter() ===== | ||
+ | |||
+ | StackOverflow: [[https://stackoverflow.com/questions/2128505/difference-between-filter-and-filter-by-in-sqlalchemy|filter_by vs filter]] | ||
+ | |||
+ | <code python> | ||
+ | users = User.query.filter(User.name.startswith('Al')).all() | ||
+ | users = User.query.filter(User.name.endswith('bert')).all() | ||
+ | </code> | ||
+ | |||
+ | <code python> | ||
+ | users = User.query.filter(User.age.between(20, 30)).all() | ||
+ | </code> | ||
+ | |||
+ | <code python> | ||
+ | users = User.query.filter(User.country_id == 2).all() | ||
+ | </code> | ||
+ | |||
+ | <code python> | ||
+ | users = User.query.filter(User.age >= 50).all() | ||
+ | </code> | ||
+ | |||
+ | ===== query.order_by() ===== | ||
+ | |||
+ | <code python> | ||
+ | # du plus petit au plus grand | ||
+ | users = User.query.order_by(User.age).all() | ||
+ | |||
+ | # du plus grand au plus petit | ||
+ | users = User.query.order_by(User.age.desc()).all() | ||
+ | |||
+ | # les 7 plus grands | ||
+ | users = User.query.order_by(User.age.desc()).limit(7).all() | ||
+ | </code> | ||
+ | |||
+ | ===== Combiner filter_by et order_by ===== | ||
+ | |||
+ | <code python> | ||
+ | users = User.query.filter(User.age.between(20, 30)).order_by(User.age).all() | ||
+ | </code> | ||
+ | |||
+ | ===== query.limit() ===== | ||
+ | |||
+ | <code python> | ||
+ | user = User.query.limit(1).all() | ||
+ | </code> | ||
+ | |||