Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Conceptos Básicos de SQLAlchemy Trabajar con SQLAlchemy Creación de Nuestra Base de Datos de Libros

¿Por qué obtengo 2 resultados diferentes con una consulta dependiendo de si la ejecuto como script o en la consola?

Intentando hacer el primer proyecto de base de datos sin mirar. Estoy atrapado en la parte de edición. No puedo hacer que la aplicación devuelva nada para editar. Lo que realmente me impide avanzar es la incapacidad de ejecutar una consulta dentro del script. Al ejecutar el siguiente código:

session.query(models.Book).filter_by(title='Mindset')

devuelvo un objeto de consulta en la consola y no parece que obtenga nada del script. El script devuelve algo de SQL que parece no tener nada pasado para title.

Pregunta adicional:

¿Hay una forma de pasar una variable a un atributo? Por ejemplo:

variable = title

session.query(models.Book).filter(models.Book.variable = variable2)

.filter() usaría operadores de Python como '=='. Agregar eso a .filter_by() genera un error tanto en la consola como en el script.

1 Respuesta

Chris Freeman
Chris Freeman
68,469 puntos

Hola Andy McDonald, al ejecutar en el script, puede estar obteniendo el objeto de consulta. Solo parece "lenguaje de consulta" tal vez debido a imprimirlo. Las llamadas de impresión al __str__ método del objeto de consulta que puede no devolver el mismo valor que el __repr__ versión que se devuelve en el REPL.

If query_object es el resultado de la consulta, para el script intenta:

print(fHay {query_object.count()} objetos en el resultado de la consulta)
para q en query_object:
    print(q)

En cuanto a usar variables en consultas, mira esta otra respuesta de publicación de Treehouse

Vuelve a publicar si necesitas más ayuda. ¡Buena suerte!