Python - programa de gestion de una biblioteca

 
Vista:
sin imagen de perfil

programa de gestion de una biblioteca

Publicado por jesus (2 intervenciones) el 14/01/2021 15:02:11
Buenos dias, estoy tratando de hacer un programa para el control de entrada y salida de los libros de una biblioteca, y el problema que tengo en estos momentos es que no puedo lograr que el codigo busque en la base de datos de los libros que ya tengo registrada. Es decir ya tengo una lista de nombres y para poder prestar un libro debo introducir el titulo, y ese titulo que introduzco se debe buscar en la base de datos y si no existe en esa base de datos el programa de un mensaje de error.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa de gestion de una biblioteca

Publicado por joel (901 intervenciones) el 14/01/2021 19:49:33
Hola Jesus, que base de datos estas utilizando?
Nos puedes mostrar como te conectas y como generas la instrucción?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

programa de gestion de una biblioteca

Publicado por jesus (2 intervenciones) el 14/01/2021 22:07:04
estoy usando sqlite3 como base de datos, y este es el codigo que tengo, y lo que pasa es que no registra el valor en la tabla de libros prestados.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def prestar():
 
    basedatos = sqlite3.connect("baselibreria1.sqlite3")
    consulta = basedatos.cursor()
 
    lector = entry_nombre_lector.get()
    cedula = entry_cedula.get()
    grado = entry_grado_lector.get()
    titulo1 = entry_libro_prestado.get()
 
 
    consulta.execute("SELECT titulo FROM baselibro WHERE titulo = ('"+titulo1+"')")
    nombre = consulta.fetchall()
 
    if nombre == titulo1:
        print ("sirve")
 
    else:
        print ("no sirve")
 
    basedatos.commit()
    consulta.close()
    ventana.destroy()
    ventana_prestar()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

programa de gestion de una biblioteca

Publicado por tincopasan (1082 intervenciones) el 15/01/2021 05:12:03
partamos de la base que:

1
consulta.execute("SELECT titulo FROM baselibro WHERE titulo = ('"+titulo1+"')")

no tiene porque funcionar si titulo1 es una variable

una forma sería:

1
consulta.execute(f"SELECT titulo FROM baselibro WHERE titulo = {titulo1}")

despues:

1
nombre = consulta.fetchall()

¿hay muchos libros con el mismo título?

sino es así sería mejor:

nombre = consulta.fetchone()


y por último:

más allá de la consulta que realices lo devuelto es una tupla por lo tanto:

1
if nombre == titulo1:

no tiene forma de funcionar salvo que titulo1 sea una tupla y es una cadena

debes extraer el valor del índice donde este el título en la consulta para ahí si comparar cadenas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar