Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Corrección Examen - Vídeo 4 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, en este último vídeo vamos a ver cómo representar la información que pedíamos
00:00:00
en el examen en el frame principal, o sea, teníamos hasta donde hemos llegado en el
00:00:25
tercer vídeo, esta sería nuestra aplicación y teníamos estos botones que ahora mismo
00:00:34
no hacen nada, tenemos esta de información que tampoco hace nada, o sea, teníamos hecha
00:00:39
nuestra ventana principal con los cuatro frames, en este caso la parte superior, la parte inferior,
00:00:45
la parte de la izquierda, este sería nuestro frame principal que es donde vamos a ir generando
00:00:52
toda la información, generando, mostrando toda la información, cuando pulsábamos mi
00:00:58
información lo que nos salía era una ventana que dependía del tk tk principal, o sea, de esta
00:01:04
ventana, eso quiere decir que si yo cierro esta ventana, esa ventana que depende, esa
00:01:12
ventana hijo, también se cerraría, pero si cierro la ventana hijo, pues la ventana principal, pues se
00:01:22
quedaría abierta, vale, si te fijas, o os fijáis, lo que he hecho antes de empezar a grabar el vídeo
00:01:28
ha sido generar esos dos ficheros json, que son los que tenéis en el aula virtual, que tienen
00:01:38
los datos y las notas, vale, tienen datos de alumnos y sus notas, vale, y a partir de aquí
00:01:44
continuamos, entonces, ¿qué es lo primero que voy a hacer? voy a crearme un pay, vale, que le voy a
00:01:55
llamar, pues por ejemplo, vamos a hacerlo primero, la ventana hijo, que vamos a mostrar cuando pulsamos
00:02:07
en el botón de abajo de mi información, no sé cómo le he puesto, vale, entonces me voy a crear aquí un pay, un
00:02:18
fichero de python, que le voy a llamar mi información, punto pay, vale, entonces con este fichero lo que
00:02:26
voy a crearme es esa clase que me va a mostrar ese fichero de información, como es algo similar,
00:02:36
no, es algo muy parecido a la clase ventana principal, recordar que a clase ventana principal
00:02:48
le llamamos desde el main, desde el principal, esto era una clase que heredaba del tk.tk, vale,
00:02:54
pues en este caso, en vez de heredar del tk.tk, lo que va a hacer es heredar del tk.toplevel,
00:03:04
todas las ventanas que son hijas de alguna, se crean con el toplevel, vale, entonces vamos a ello,
00:03:11
le vamos a poner, para importar, pues como siempre, no, el import tkinter, tkinter as tk, vale,
00:03:21
esto yo lo pongo siempre así, bueno, pues ya está, en herramientas, en herramientas, tenemos dos clases,
00:03:32
una que es mi texto, tenemos otra que es colores aplicación, vale, pues vamos a traernos, vamos a
00:03:47
importar el colores aplicación, entonces vamos a poner, from, punto, herramientas, import, colores,
00:03:59
como hemos dicho, colores, aplicación, vale, import, colores, aplicación, ahí está, vale, pues porque tenemos que seguir una cierta coherencia entre las ventanas,
00:04:14
que es uno de los principios de la programación, vale, nosotros nos creamos la clase que le vamos a llamar, myInformation, por ejemplo, vale, como vosotros queráis,
00:04:36
tk, punto, y esto es la diferencia, aquí no voy con tk, entonces haría otra ventana principal, aquí lo que voy es con el toplevel, vale,
00:04:55
estoy heredando de toplevel, vale, y como hemos visto ya en los otros vídeos, tenemos un constructor, que era, el def, guión bajo, guión bajo, init, guión bajo, guión bajo, self, vale,
00:05:04
y os tenéis que acordar que si a estas clases le pasamos parámetros de entrada, cuando las llamamos desde otros ficheros, es en el init, donde vamos a recibirlos y con los que vamos a trabajar,
00:05:23
vale, yo tengo el init, como es una clase que está heredando del toplevel, os tenéis que acordar de poner también el init, el constructor de esa clase de la que heredáis,
00:05:37
vale, os tenéis que acordar de eso, vale, y entonces, pues para empezar, vamos a declararnos un self, colores, vale, recordar, o en este caso recuerda Lucas,
00:05:56
que para trabajar dentro de las clases, con las diferentes variables, en Unity, lo más fácil que tenéis es poner siempre el self, que es lo que en Java conocéis como el dis,
00:06:10
vale, y de esa manera puedo hacer referencia a esa variable desde cualquier punto de la clase, vale, entonces yo le voy a decir que esto va a ser igual a colores, aplicación, que para eso nos la hemos importado,
00:06:28
vale, entonces aquí le voy a decir, el self, vamos a ponerle un título, a esa ventana que va a aparecer nuestra información, entonces le digo pues, información alumna, por ejemplo, el título que sea,
00:06:48
vale, eso es un string, no tiene más historia, self.geometry, para la geometría, o sea, le voy a dar un alto, un ancho, y le voy a meter también una posición,
00:07:10
entonces fíjate, en esta ayuda que me aparece aquí, vale, en este tooltip, como me pone el width por ahí, ancho por alto, más el x y el y, vale, el width y el x siempre va con una x,
00:07:28
el width y el x es la geometría de la ventana, x y y, pues la posición en x y en y, entonces, eso es un string, pues le pasamos un string y le digo el width, pues vamos a ponerle, por ejemplo, 300, vale,
00:07:42
esto es a ojímetro, lo estoy haciendo a ojímetro, bueno, también depende de la resolución, esto se puede hacer mejor, pero ahora mismo para hacer el vídeo y no hacerlo muy largo, lo voy a dejar así,
00:07:58
¿qué le estoy diciendo?, que sea 300 de ancho, 1200 de alto, que puede ser como demasiado, ahora lo veo, y en la posición 00, relativa al padre, vale, recuerda que esto es una ventana hijo,
00:08:12
entonces estas posiciones son relativas siempre al padre, ¿qué más le podemos poner?, pues el self, por ejemplo, el self.config, por ejemplo, y en el config le podemos pasar esos colores de fondo para que sea igual a la,
00:08:31
la apariencia que sea igual a la ventana padre, vale, entonces, background, el background, igual, ya que le vamos a decir el self.color, o colores, como le hemos dicho, colores, .get, va, aquí estás,
00:08:53
vale, esto no me acordaba, era color principal, vale, para que coja el mismo color que teníamos, te lo diré, en la ventana principal, a lo mejor, más que coger el color principal,
00:09:09
lo que podemos hacer es coger el color del encabezado del pie, que son más oscuros, para que resalte más, vale, que esto ya es una cosa que, bueno, pues un poco, tema del diseñador, vale, pues si yo aquí le pongo,
00:09:34
yo creo que quedará mejor, paréntesis, paréntesis, vale, y pues ya está, ahora vamos a empezar a meter los widgets, vale, para meter, para meter la información del alumno,
00:09:51
que era lo que os pedía en el examen, vale, entonces, para hacer eso voy a crear otro frame, no lo voy a hacer directamente sobre la ventana, que podrías, eh, pero ya que estamos trabajando con frame,
00:10:18
pues vamos a crearnos otro frame, entonces aquí, vamos a crear un frame, exactamente igual que hemos hecho en la ventana principal, vale, parece que en la ventana principal, a lo mejor,
00:10:28
puedes pensar que tenía más sentido, porque hemos troceado esa ventana con la parte superior, izquierda, inferior, la principal, vale, aquí lo que voy a hacer es agruparlo todo en un frame,
00:10:40
porque a la hora de trabajar, en realidad, es más cómodo, vale, y a la hora de hacer cambios es mucho más cómodo, entonces, voy a crear ese frame, entonces le vamos a poner self.frame,
00:10:54
frame, por ejemplo, va a ser igual a tk, vale, que para eso, nos lo hemos creado, bueno, en este caso, yo creo que no me hace ni falta, vamos a ponerle el ctkframe,
00:11:07
a ver, para usar el ctkframe, se me ha olvidado, aquí, poner el import, y vamos a poner el custom tkinter, y aquí sí que ctk,
00:11:24
y aquí sí, ctkinter, ctkframe, aquí estás,
00:11:47
ctkframe, vale, y como siempre, a pasarle parámetros, cuál es el primer parámetro, donde quieres dibujar ese, donde quieres, sí, dibujar este frame, vale, donde quieres que te aparezca,
00:12:16
en qué ventana, en este caso, en qué ventana es, en la que estamos construyendo nuestra clase, así que es ella misma, self, vale, ahí hace referencia a ella misma, vale, un color de, un fgcolor,
00:12:32
un color de primer plano, pues vamos a ponerle, colores, ahí no, perdón, self.colores, vale, ahora vamos a poner, pues, el get, y le voy a volver a poner el color de la cabecera,
00:12:48
que esto, ya te digo, que luego lo podemos ir cambiando, podría coger cualquiera de los colores que he ido creando en el pi de herramientas, vale, el fichero de python de herramientas, entonces le pongo, get cabecera, paréntesis, paréntesis,
00:13:11
si sigo pasando parámetros, pues le pongo un bordercolor, por ejemplo, bordercolor va a ser igual, pues lo mismo, self.colores, punto, sí, punto, get, y en este caso le vamos a pasar, pues qué color le podemos pasar,
00:13:30
podemos pasar el de la izquierda, a lo mejor, yo que sé, no sé, ahora lo vemos como va quedando, vale, le decimos que nos lo dibuje ese frame que tenga, en vez de ser ángulos rectos las esquinas del frame, pues que sean un poco conchafladas,
00:13:51
redondeadas, entonces le ponemos, pues por ejemplo, el, cómo era, corner, este, corner radius, vamos a poner esto que se vea bien, ajuste de parámetros, vale, y el corner radius, pues le vamos a decir, pues, a 12, vale,
00:14:17
qué más le podemos decir, el color de fondo, que le hemos dicho solo el de primer plano, cuál va a ser el color de fondo, pues le vamos a poner el mismo, self, el mismo que tenías, self, punto, colores, punto, getcolor, fuente,
00:14:41
vamos a poner este, ya te digo que esto al tenerlo en los diferentes ficheros de python, luego es muy fácil cambiarlo, vale, y yo creo que con esto para hacer el frame me vale, así que pues por ahora lo dejo ahí, vale,
00:15:09
ahora vemos cómo nos queda, vale, que es lo siguiente que teníamos que hacer cuando metemos un widget, decirle en qué posición queremos que se coloque dentro del contenedor, que en este caso es la ventana del tcat top level, vale,
00:15:31
entonces aquí le digo el self.frame.grid, y le voy a decir en qué posición, pues siempre acuérdate de relativo al padre, es el column igual a cero, el row igual a cero, vale, o sea, la esquina superior izquierda,
00:15:47
y que tenga un pad i igual a veinte, que no se pegue a lo que es el margen de la ventana del top level, que deje siempre ahí un espacio, pues porque quedará mejor, vale, ya me están llamando, vale, un momentito,
00:16:11
vale, continuamos, entonces lo del pad x para meter ese margen, vale, vale, ya tendríamos situado nuestro frame dentro de nuestro top level, eso es, vale,
00:16:34
podemos decirle también, o podemos pasarle cuantas columnas va a tener este frame, vale, acuérdate, que le podríamos configurar el número de filas y el número de columnas, vale,
00:16:58
entonces podemos poner el self.frame.columnconfigure, y aquí le voy a decir, a ver, cuantas columnas va a tener, en principio una, vale, le decimos una, vale, que es la cero,
00:17:19
y le voy a decir que el weight, que es el peso que van a tener esas columnas a la hora de meter widget, vale, que una mande sobre otra, le digo cada uno, esto no es obligatorio ponerlo, pero si se recomienda siempre, vale,
00:17:41
le pongo el self.frame.rowconfigure, cuantas filas va a tener, bueno, pues en este caso, le voy a meter tres por si acaso, no me acuerdo, os pedía el nombre, el ciclo, no sé, ahora lo miro, vale,
00:17:58
entonces le voy a pasar cero, uno, y dos, tres, y que le paso también al weight, y que le paso también a uno, vale, ese peso entre las filas, vale, y ahora ya si me pongo a ir dibujando, ir cargando los widget en ese frame,
00:18:21
entonces aquí le voy a pasar self.lbl, y le llamo información, vale, por ejemplo, información, esto que va a ser un ctk label, ¿dónde lo voy a dibujar?, en frame, en self,
00:18:42
frame, vale, es ahí en el frame que acabamos de crear en esta parte de arriba, aquí vamos a ponerle cargando widget, vale, entonces le voy a dibujar en el frame, vale, el contenedor de esos widget va a ser ese frame,
00:19:12
el texto que quiero que aparezca, pues va a ser alumno, pues lucas, vale, por ejemplo, le podemos meter la fuente, el font, vale, entonces la fuente, pues alguna que tenga yo cargada en el sistema, osaria, que esa está siempre, le puedo pasar también con la fuente el tamaño, pues veinte, vale,
00:19:33
le podemos pasar el color del texto, testcolor, y le voy a pasar un stream, pues por ejemplo en white, en blanco, vale, y con esto, pues me vale, ¿qué más le tengo que poner ahora a esta etiqueta?,
00:20:04
vamos a pasarle también el parámetro del width, vale, que nos puede venir bien, el ancho que va a tener ese texto, vale, ¿qué más tiene que tener la etiqueta?, el information, punto, la posición, acordaros siempre de que hay que meter ese grid,
00:20:30
vale, o ese pack, o ese place, vale, en este caso le voy a decir que vamos a estar en la parte de arriba, el column cero, el row cero, vale, y que me lo ponga centrado,
00:20:53
aquí le pasamos nwes, son todos los puntos jardinales, entonces va a coger y me lo va a poner centrado, así mismo, vale, esa va a ser mi primera etiqueta, vale, y seguimos metiendo más etiquetas,
00:21:13
vamos a meter ahora, pues otra etiqueta, vale, vamos a meter otra etiqueta que para eso, vamos a coger, como le hemos dicho tres columnas, pues esto es por juguetear,
00:21:41
le voy a decir, esto no se que me he hecho, nada, bueno, pues, no se, información dos, o información uno, lo voy a dibujar otra vez en frame, vale, aquí hago un copiar y pegar,
00:22:05
porque al final, pues es todo el tiempo exactamente lo mismo, aquí que le voy a poner, pues el centro, centro, y es Villablanca, vale, le dejo el tamaño, le dejo todo igual,
00:22:32
todo igual, en este caso, aquí ya no me hace falta el width, porque ya me lo he ajustado con la primera etiqueta, vale, le digo también que me lo deje centrado, en este caso le digo la columna cero,
00:23:00
pero la fila uno, porque si no me lo va a dibujar todo en el mismo sitio, vamos a meter esa tercera fila que hemos configurado en el row config, y entonces aquí le vamos a poner la dos, vale,
00:23:16
esto está mal, aquí hay que poner un uno, aquí hay que poner un dos, vale, volvemos a dibujar en el frame, aquí le vamos a poner un texto, pues que sea el módulo,
00:23:32
entonces le ponemos el módulo, módulo, dos puntos, y le ponemos, vamos a ponerle que son 500 sistemas de gestión empresarial, todo igual, otra vez, le vuelvo a quitar este 500,
00:23:46
pues no me dice ahora mismo ya nada, pero no me dice nada, porque ya lo he puesto en la primera etiqueta, vale, que eso es importante, al ponerlo en la primera etiqueta ya le estoy dando ese tamaño a esas columnas,
00:24:12
a esa primera columna, ya le estoy diciendo que todas van a tener ese tamaño de 500, vale, en este caso va a ser aquí en la dos, vale, y en principio ya lo tendríamos, ya tendríamos hecha nuestra clase,
00:24:27
ahora lo probamos, con el tk top level, y configuramos lo que va a ser esa ventana, vale, y la tenemos en miinformacion.py, vale, y entonces que tendremos que hacer ahora, pues lo primero, cargar ese miinformación, vale,
00:24:47
la hemos llamado myinformation la clase, el fichero es mi información, vale, entonces nos vamos a venir a clase ventana principal, aquí vamos a importar, from, miinformación, import, myinformation, vale, ya tengo acceso a esa clase, vale, genial,
00:25:06
y ahora lo que tengo que hacer es asociar a ese botón que, lo diré, que llama a, que llama a la información general, vamos, la información del usuario, pues crear una función,
00:25:35
y que desde ese botón, llame a esa función, vale, entonces para hacer eso, teníamos, vamos a ver aquí, los botones, migración de datos, vale, y tienes el load json, teníamos botón opción dos, mi información, vale, esto es lo que buscaba,
00:26:02
este, ajuste de palabra, command, y poníamos, save my information, vale, pues en save my information, vamos a irnos a esa función, y a crear los pasos necesarios, para cargar esa clase, con esa ventana, vale,
00:26:32
entonces, ¿qué es lo que tengo que hacer?, pues crearme, yo por defecto siempre pongo el self, aquí no me haría falta, pero bueno, yo le pongo, vale, le llamo mi información, una variable, ¿a qué va a ser igual esta variable?, vale, mi información, o como tú quieras, como vosotros queráis, vale, ¿a qué va a ser igual?
00:27:01
Lo que tengo que hacer ahí, es instanciar, esa clase, que acabo de cargar, que es, my information, vale, ya la tengo instanciada, he hecho una instancia de la clase que tengo guardada dentro del fichero de python, de mi información, la que acabamos de crear, vale, esto, me da un error aquí, el self, ¿por qué?, porque he puesto el nombre de la función,
00:27:22
pero hay que acordarse de meter entre los paréntesis siempre el self, vale, bueno, ya tenemos esa instancia, perfecto, pues ahora, ¿qué es lo que le voy a decir?, pues recordar que cuando yo visualizo una, cuando creo una ventana con el tk.tk, o una ventana con el top level, vale, una ventana hijo, me da igual las dos,
00:27:47
hay que acordarse de que siempre le pasamos el main loop, vale, para que me esté redibujando todo el tiempo esa ventana, vale, nosotros en los widgets podemos hacer cambios, podemos hacer widgets, generarlos dinámicamente, etc.
00:28:17
vale, entonces es importante el meter el main loop, el main loop ahora mismo, ¿sobre qué iría?, sobre mi información, esta variable que he creado aquí arriba, punto main loop, vale, y paréntesis, paréntesis, bueno, en principio ya lo tenemos todo, vamos a probarlo, tenemos, vamos a nuestro fichero, a nuestro main, vale, a nuestro principal,
00:28:35
play, vale, y aquí nos está diciendo, con nuestra aplicación, a ver qué error nos está dando, ventana principal, mi información,
00:29:05
que no reconoce el parent package, vamos a ver, mi información, este punto aquí no sé qué pinta, listo, venga, a ver si ahora sí, vale, tenemos nuestra ventana, nuestra aplicación,
00:29:36
mi migración de datos, pues no hace nada, vale, y mi información, cuando lo pulso, vale, pues me ha salido así, mal, feo, vale, feo, lo he puesto al revés en los tamaños, venga, pues vamos a cambiarlo, vale, entonces vamos a coger,
00:30:02
vamos a ir a mi información, me voy a venir aquí, vale, que esto era lo que es una barbaridad poner el 300, entonces, como 300 puede estar bien, y aquí le voy a dejar 200, vale, y aquí vamos a poner, pues en la posición,
00:30:22
200 y 400, para que me lo mueva, vale, venga, pues lo vuelvo a probar, vale, esto aquí, esto aquí, vale, necesito, ahora de alto está bien, lo puedo poner un poco más pequeño, vale, o venga,
00:30:46
mi información, vamos a ponerle de ancho, pues 500, de alto me vale con 150, venga, bueno, pero ya veis que ya es cuestión de que me quede bien, vale, entonces mi información aquí está, perfecto, vale,
00:31:09
entonces, me está haciendo, ves que me lo está poniendo aquí, no me lo está cogiendo en relación con el padre, vale, me sorprende, pero eso a través de código podemos decir que siempre todas las ventanas estén centradas,
00:31:35
vale, pero con el string en el que yo le paso estas posiciones, pues no me lo está cogiendo, vale, entonces, bueno, pues tampoco pasa nada, pero ya os digo que se puede hacer, vale,
00:31:51
ya os dije como coger con el info, el winfo, la resolución y entonces ir centrándolo todo, vale, y se puede hacer sin problema, esta es la ventana hijo, así que si yo cierro esta ventana, no hay problema, vale,
00:32:12
no se cierra la aplicación, si yo la vuelvo a sacar, la tengo aquí y cierro la ventana, bueno, cierro la ventana padre, vamos a ver, si yo ahora cierro la ventana padre, venga, se me van a cerrar todas las ventanas hijo, vale,
00:32:31
que es un poco lo del top level y el tk que os estaba diciendo, vale, entonces esto es para la ventana de información, bueno, que más hemos hecho, pues antes de empezar, lo que os decía antes, vale, he creado estos ficheros json,
00:33:01
y estos ficheros son los que tenemos que leer y mostrar, en el frame principal, vale, entonces, ahí vamos a crearnos una función que la voy a llamar, pues el load json, vale,
00:33:19
entonces, con el load json, con esa clase, voy a empezar a cargar los datos y a mostrarlos, vale, entonces para hacer esto,
00:33:36
pues como lo hago yo esto, vamos a crear un fichero, le voy a llamar load json, vale,
00:34:06
load json.py, vale, es otro pi para crear otra clase, vale, en esta clase voy a empezar a crear lo de siempre, vale,
00:34:26
el import tkinter as tk, from tkinter import, este disco, vale, lo que nos pueda hacer falta, from herramientas,
00:34:47
vamos a importar los colores, vale, colores aplicación, vamos a abrir mi texto, vale, que también la teníamos, desde,
00:35:12
lo vamos a importar todo ya que lo tenemos, pues si nos hace falta más que nada, información import, my information, from custom tkinter import,
00:35:43
este disco también, vale, acordaros de que el tkinter y el custom tkinter, el custom tkinter es más nuevo y permite hacer ahí cosillas con una interfaz más actual, vale,
00:36:02
importamos el json y el os, porque el os y el json para poder leer y guardar esos datos en un fichero, en lo que nos haga falta, vale, y el json para leer esos json, vale,
00:36:18
el os para el sistema operativo, para operaciones sobre sistemas operativos, vale, y como también vamos a trabajar con la base de datos, pues entonces,
00:36:39
pero eso no lo tenemos hecho, vale, entonces, antes de hacer esto, esta clase, vamos a crearnos otra clase que le vamos a llamar,
00:36:51
base de datos, base de datos.py, vale, pues base de datos, en base de datos vamos a importar para conectarnos a nuestro MySQL, vale, que era de lo que se trataba el ejercicio,
00:37:10
vamos a crearnos una base de datos, vale, entonces me voy a crear una clase que le voy a llamar mi base de datos, ahí va, que no hereda de nada, que vamos a meter el init,
00:37:35
el constructor, como siempre con el self, y en este caso le voy a pasar los datos del primer json y los datos del segundo json, y ya hago la mezcla, ya los uno,
00:37:54
a partir de aquí o del otro código, vale, ahora lo vamos viendo, vale, ese es el definit, que es lo que hago aquí, pues para poder trabajar de diferentes funciones,
00:38:11
le meto el self a datos1, le meto el self a datos2, para poder trabajar desde cualquier parte del script, perdón, de la clase, vale, que más le digo,
00:38:27
pues vamos a hacer esa conexión con la base de datos, entonces le digo el self.conexion es igual a mysql.connector.connect, recordar que estamos con docker o si tenéis la base de datos en casa
00:38:51
o lo que sea, vale, pero si estáis con docker hay que arrancar primero el docker y cargar esa imagen del mysql, vale, que tres parámetros hay que pasarle a la conexión,
00:39:10
el host con el localhost, hay que pasarle el localhost porque lo tenemos en local, el user que va a ser un string que va a ser el usuario, que por defecto va a ser root,
00:39:23
vale, el password que recordar que cuando arrancábamos desde el docker y arrancábamos esa imagen le decíamos esa password 123456, por ejemplo, la que vosotros le hayáis dado, y con esto nos debe hacer la conexión a la base de datos, vale,
00:39:42
luego creamos una variable que era la de cursor, que es la que me va a permitir realizar las distintas consultas sobre la base de datos, vale, las consultas que son consultas, pues eso, las de siempre,
00:40:06
las de selección, inserción de registros, eliminación, vale, todas las que habéis visto en primero, entonces el cursor se declara, esa variable self.cursor es self.conexion.cursor, vale,
00:40:25
a partir de ahora yo ya puedo empezar a crear mis consultas, ¿qué es lo que voy a hacer?, pues primero voy a llamar a una función self.crearBaseDatos, por ejemplo, vale,
00:40:50
así que aquí vamos a poner dev.crearBaseDatos.self.pass, vale, para que ahora no me dé ningún problema, luego ¿qué más puedo hacer?, crear las tablas, self.crearTabla,
00:41:12
así que vamos a crearnos otra función que va a ser dev.crearTabla, vale, con el self, los dos puntos, pass, vamos a crearnos otra función que va a ser self.guardarDatos,
00:41:37
vale, y lo mismo, dev.guardarDatos.self, vale, bueno, en principio es esto, ¿qué es lo que voy a hacer en crear base de datos?, crear esa base de datos,
00:42:04
como es una operación sobre base de datos, lo suyo es jugar con el try catch, vale, intenta, self.cursor, la variable que me he creado aquí arriba y que es la que os digo que es necesaria para meter una función,
00:42:26
el punto execute, y ahora le pasamos el string de esa operación, de esa consulta que queremos hacer sobre la base de datos, en este caso ¿cuál es?, createDatabase, si no existe,
00:42:45
si no existe, y le vamos a llamar examen, vale, esto me va a crear, va a lanzar esa consulta y me va a crear la base de datos siempre que se haya conectado bien con estos tres parámetros
00:43:01
que hemos pasado aquí arriba, me va a crear esa base de datos que se llama examenDAM si es que no existe, vale, y pues vamos a meterle el print, creada satisfactoriamente,
00:43:27
por ejemplo, vale, que ocurra una excepción porque no te logueas bien, porque hay algún problema con la contraseña, porque no encuentran MySQL que no está arrancado, ese tipo de cosas, le metemos el string,
00:43:46
y aquí le ponemos print, no creada, por ejemplo, vale, ya tendríamos creada nuestra base de datos, que ahora lo que quiero es crear las tablas exactamente igual,
00:44:07
y al final, le voy a decir self.cursor.execute, aquí estás, que es lo primero que le decimos, useExamenDAM, vale, y le pongo el punto y coma,
00:44:28
que por cierto, en crear la base de datos, yo creo que ya ni siquiera nos hace falta, vale, le decimos que use esa base de datos, ahora una vez que ya estamos situados en esa base de datos,
00:44:53
self.cursor.execute, que es lo que hago ahora, crear esa base, esa tabla, create table, si no existe, me vas a crear la tabla que es datos, por ejemplo, migrados,
00:45:15
datos migrados, vale, datos migrados 2, el nombre, los campos que voy a meter dentro de esa tabla, cuáles son, username, vale, que es de tipo,
00:45:35
varchar40, por ejemplo, 40, le voy a poner un campo que es el email, el email, que es varchar, de un tamaño de 70,
00:45:57
le voy a poner un password, que es varchar, de un tamaño de 40, le vamos a poner nota1, que es varchar, tipo 2, vale, es numérica, es una nota,
00:46:23
pero ya sabéis que si no voy a hacer operaciones con esa nota, lo suyo es guardarlo como texto, porque ocupa menos lo que es el disco, no es lo mismo guardar un carácter que un número,
00:46:48
vale, y eso es importante, la nota 2, que es varchar2, y teníamos una nota 3, o no teníamos una nota 3, no, teníamos dos notas, vale, entonces, eso sería,
00:47:04
ese paréntesis, en el de la consulta, punto y coma, vamos a ver si he puesto bien todos los paréntesis, que puede ser que no, ajuste de palabra,
00:47:20
vale, y le pongo el print, tabla, entre comillas, creada,
00:47:37
satisfactoriamente, vale, y que más hago, como estamos en el tray, pues el step siempre,
00:48:04
vale, print, tabla, no creada, o lo que vosotros queráis, el texto que vosotros queráis,
00:48:22
al final eso es solo el texto que se va a imprimir en la consola, vale, bueno, este vídeo,
00:48:32
para que no se me haga mucho más largo, lo voy a dejar aquí, ya hemos creado la base de datos,
00:48:38
hemos creado la tabla, hemos creado la conexión, pues esto tiene que funcionar, ya veis que
00:48:44
a la hora también de crear esa ventanita, ese top level de información, también tenéis la clase,
00:48:50
vale, y os hago un quinto vídeo ya, con lo que nos faltaría, que sería terminar el fichero este
00:48:56
del load JSON, que va a hacer, por un lado, guardar estos datos, vale, y cargar los datos,
00:49:07
a ver, cargar los datos que leemos en el JSON, y mostrarlos en el frame principal,
00:49:16
y luego también guardarlos en la base de datos, que es lo que estoy haciendo ahora, vale, bueno,
00:49:24
pues entonces, os debo ese quinto vídeo, este de guardar, hay que ponerlo con el pas,
00:49:29
si no nos da error, vale, bueno, un saludo chicos, hasta luego.
00:49:39
- Idioma/s:
- Autor/es:
- Mario Santos
- Subido por:
- Mario S.
- Licencia:
- Dominio público
- Visualizaciones:
- 12
- Fecha:
- 18 de enero de 2024 - 13:14
- Visibilidad:
- Público
- Centro:
- IES VILLABLANCA
- Duración:
- 49′ 47″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 1.11