14-12-2017, 08:02 AM
Hola,
Este código está asociado a una base de datos en Mysql que previamente está creada en mi ordenador el campo ID de la base se basa en INT mientras que el resto de campos se corresponden con VARCHAR 100. En este programa la idea es la siguiente:
1. Se tienen que crear 10 registros en la base de datos directamente sin introducirlos a mano y creo que eso ya está.
2. El programa tiene que permitir introducir datos por pantalla y teclado: Creo que eso lo tengo, pero tengo un problema con el ID. Necesito que siga la numeración de los que ya están introducidos, es decir si en los que ya he metido previamente hemos terminado en el ID 10, el siguiente que metamos por teclado será el 11, el siguiente el 12 ¿Cómo puedo resolver esto con Python? Otra de las peculiaridades que tiene la introducción por teclado sería evitar dejar uno de los campos en blanco...siempre tienen que estar todos rellenos. Enviando un aviso al usuario de que no se efectuará el insert.
3. Necesito crear un bucle en el que te deje meter varios registros, pero que llegado a un punto te deje salir de él y cerrar el programa.
4. Final print una tabla de datos.
Un saludo y dejo el código que he escrito.
Este código está asociado a una base de datos en Mysql que previamente está creada en mi ordenador el campo ID de la base se basa en INT mientras que el resto de campos se corresponden con VARCHAR 100. En este programa la idea es la siguiente:
1. Se tienen que crear 10 registros en la base de datos directamente sin introducirlos a mano y creo que eso ya está.
2. El programa tiene que permitir introducir datos por pantalla y teclado: Creo que eso lo tengo, pero tengo un problema con el ID. Necesito que siga la numeración de los que ya están introducidos, es decir si en los que ya he metido previamente hemos terminado en el ID 10, el siguiente que metamos por teclado será el 11, el siguiente el 12 ¿Cómo puedo resolver esto con Python? Otra de las peculiaridades que tiene la introducción por teclado sería evitar dejar uno de los campos en blanco...siempre tienen que estar todos rellenos. Enviando un aviso al usuario de que no se efectuará el insert.
3. Necesito crear un bucle en el que te deje meter varios registros, pero que llegado a un punto te deje salir de él y cerrar el programa.
4. Final print una tabla de datos.
Un saludo y dejo el código que he escrito.
Código:
#!/usr/python
# -*- coding: utf-8 -*-
#Queda hacer por hacer:
#ID
#bucle para introducir varios registros tipo basta
#Si se introduce un valor en blanco para cualquier campo
#no se efectuará el insert y se enviará al usuario un aviso advirtiendo que no se ha hecho
import MySQLdb
Conexion = MySQLdb.connect(host='localhost', user='conan',passwd='crom', db='DBdeConan') #Conexion con la base de datos
micursor = Conexion.cursor() #Cursor creado
#Insertando los 10 registros que pide el ejercicio
#Registro 1
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (1, \"Ejercito de Zombies\",\"Muertos Vivientes\",\"Desmembramiento a espada\");"
micursor.execute(query)
#Registro 2
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (2, \"Hombre lobo\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 3
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (3, \"Vampiro feo\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 4
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (4, \"Gran Zombie\",\"Muertos Vivientes\",\"Balazo en cabeza\");"
micursor.execute(query)
#Registro 5
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (5, \"Espiritu\",\"Muertos\",\"Reflejo espejo\");"
micursor.execute(query)
#Registro 6
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (6, \"Dracula\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 7
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (7, \"Vampiro\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 8
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (8, \"Crinos\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 9
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (9, \"Hispo\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 10
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (10, \"Lobo\",\"Animales\",\"Espada\");"
micursor.execute(query)
Conexion.commit()
#Insertar registro de forma manual
Nombre= raw_input ("Ingrese el nombre de la victima:")
Profesion= raw_input ("Ingrese la profesion de la victima:")
Muerte= raw_input ("Ingrese la causa de la muerte:")
query = "INSERT INTO Victimas (id, Nombre, Profesion, Muerte)\
VALUES('%s','%s','%s','%s')" % \
(id, Nombre, Profesion, Muerte)
micursor.execute(query)
Conexion.commit() #Hacer efectiva la escritura de datos
#imprimir registros
query= "SELECT * FROM Victimas";
micursor.execute(query)
registros= micursor.fetchall()
print registros
#Final base y borrado
query= "DELETE FROM Victimas";
micursor.execute(query)
Conexion.commit()