En este ejercicio nos vamos a centrar en una parte importante de muchas aplicaciones: la base de datos.
Vamos a integrar la aplicación Kwranking con una base de datos sqlite utilizando para ello el ORM SQLAlchemy.
Básicamente, este ejercicio consiste en importar las palabras clave a utilizar por el programa (en la función carga_keywords()
) y guardarlas en una tabla de la base de datos.
Requisitos
- Hay que utilizar el ORM de SQLAlchemy y sus modelos. No se permiten consultas nativas a la base de datos.
- Crea un fichero llamado
db.py
que tenga la configuración de acceso a la base de datos (keywords.sqlite
). En este fichero se debe definir lo siguiente:- Una variable
session
con el objeto de la sesión de base de datos,Session()
. - Una variable
Base
, con el modelo base a utilizar obtenido a través de la funcióndeclarative_base()
.
- Una variable
- Crea un fichero llamado
models.py
. En este fichero definirás los modelos de base de datos de tu aplicación. En concreto, define un modelo llamadoKeyword
que herede dedb.Base
. Las características de este modelo son las siguientes:- Tendrá tres campos:
id
, unInteger
. Además, será la clave primaria.keywords
, unString
para almacenar una palabra clave. Es único y no permite nulos.posicion
, unInteger
con la posición de las keywords. Admite valores nulos.
- Define un método
save()
para guardar una palabra clave en la base de datos. Si la palabra o palabras clave ya existen, no se deben de volver a guardar. - Define un método estático
get_all()
que devuelva todas las palabras clave de la base de datos.
- Tendrá tres campos:
- Redefine la función
carga_keywords()
para que guarde en la base de datos cada una de las palabras clave que lea del fichero. Finalmente, esta función debe devolver la lista de palabras clave almacenadas en la base de datos. - Carga las palabras clave de la base de datos al comienzo de la ejecución del programa. Asígnalas a la variable
keywords
que ya tenías. - Crea las tablas de la base de datos al arrancar la aplicación automáticamente.
Librerías a utilizar
Debes instalar la librería sqlalchemy
.
Ayuda
Como ayuda, puedes consultar los siguientes artículos: