library how python sqlalchemy flask-sqlalchemy

python - how - plotly library



¿Cuál es la diferencia entre.one() y.first() (1)

¿Cuál es la diferencia entre one y first métodos en SQLAlchemy?


Query.one() requiere que solo haya un resultado en el conjunto de resultados; es un error si la base de datos devuelve 0 o 2 o más resultados y se generará una excepción.

Query.first() devuelve el primero de un conjunto de resultados potencialmente más grande, o None si no hubo resultados. No se levantará ninguna excepción.

De la documentación para Query.one() :

Devuelve exactamente un resultado o genera una excepción.

y de Query.first() :

Devuelva el primer resultado de esta Consulta o Ninguno si el resultado no contiene ninguna fila.

(énfasis mío).

En términos de una lista de Python, one() sería:

def one(lst): if not lst: raise NoResultFound if len(lst) > 1: raise MultipleResultsFound return lst[0]

mientras que first() sería:

def first(lst): return lst[0] if lst else None

También hay un método Query.one_or_none() , que genera una excepción solo si hay varios resultados para la consulta. De lo contrario, devolverá el resultado único o None si no hubo resultados.

En términos de lista, eso sería el equivalente de:

def one_or_none(lst): if not lst: return None if len(lst) > 1: raise MultipleResultsFound return lst[0]