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]