Ejercicio #3: Integrar la aplicación Kwranking con una base de datos

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ón declarative_base().
  • 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 llamado Keyword que herede de db.Base. Las características de este modelo son las siguientes:
    • Tendrá tres campos:
      • id, un Integer. Además, será la clave primaria.
      • keywords, un String para almacenar una palabra clave. Es único y no permite nulos.
      • posicion, un Integer 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.
  • 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:

Solución

Solución al Ejercicio #3

¿Quieres ser expert@ en Python? Recibe trucos Python y las últimas novedades del blog

¡Eyyy! Esto también te puede interesar 👇

* Te informo de que los datos de carácter personal que proporciones al comentar serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es moderar los comentarios. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en Disqus (disqus.com), mi sistema de comentarios, que está acogido al acuerdo de seguridad EU-US Privacy. Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a juanjo@j2logo.com. Encontrarás más información en la POLÍTICA DE PRIVACIDAD.

Sobre j2logo

j2logo profile

Quiero ayudarte a que seas mejor programador/a, pero no uno cualquiera, sino uno de los top.

¿Quieres ser expert@ en Python? 🐍

❤️ He ayudado a miles de programadores/as como tú a ser mejores Pythonistas

📩 Recibe de vez en cuando trucos y scripts Python y las últimas novedades del blog

* Al enviar el formulario confirmas que aceptas la POLITICA DE PRIVACIDAD

¿Quieres ser expert@ en PYTHON?

j2logo-pythonistas

❤️ He ayudado a miles de programadores/as como tú

📩 Recibe trucos, scripts y las novedades del blog

¿Quieres dominar Python?

Python, Guía para ser un Pythonista

El curso con el que aprender el lenguaje desde cero. Con mi soporte y ayuda.

OFERTA BLACK FRIDAY

35% de descuento