Duda estructura side project

B

Hola mi gente.

En mi proceso de cambio de carrera profesional estoy en el paso de crear un side project atractivo para el GitHub, una idea sencilla pero que toca varios palos. Este finde me he leído el libro de Kafka y pienso usarlo dentro del proyecto.

LA IDEA

Scrapeo de una web --> pasar los datos a un topic de Kafka --> procesar --> insertar en DDBB --> desde Kafka publicar tweets.

Mi duda viene en la parte de base de datos. Para no meter las consultas a martillo en el código, estaba pensando en usar microservicios, un ORM tipo Django o Flask, Django lo he usado, pero Flask no, tengo entendido que Flask es más "sencillito" que Django.

Una vez elegido el ORM según me recomendéis:

  • ¿La parte de BBDD la meto en el mismo proyecto que scrapea etc? Yo lo haría así, más que nada por tenerlo dentro del mismo repo, pero me gustaría saber opiniones.
  • ¿Las inserciones y lecturas a la DDBB la hago a través de API?

Gracias, os voy contando

Fyn4r

Empezando porque flask no es un ORM no se por donde tirar xD

B

edito para que no se vaya la duda a tomar por culo

aren-pulid0

Si conoces Django tira por Django, aunque te sobran muuchas cosas que vienen incluidas.

Flask no es un ORM, Django lo tiene incluido como "Django ORM", para proyectos con Flask se suele utilizar SQLAlchemy.

Mi recomendación es que pases de ambos y que esto tiene toda la pinta de venir que ni pintado para FastAPI, es como un flask pero mas moderno y sencillo y la docu es realmente buena. Además de que para este tipo de cosas de Kafka y demás suele ser necesario un alto nivel de concurrencia

https://fastapi.tiangolo.com/es/tutorial/sql-databases/

En este tutorial crea algunos modelos como en Django y hace las típicas operaciones de CRUD, aunque te interesaría echarle un vistazo a algo de la introducción.

1 2 respuestas
B

#4 de lujo, no lo conocía, voy a investigar, pero por lo que me dices, seguramente tire por ahí. Muchas gracias.

B

.

1 respuesta
Unrack

#6 Puedes intentar tirar de la parte de la documentación que trata la conexión a db con sqlaclhemy https://fastapi.tiangolo.com/tutorial/sql-databases/ pero acabarás haciendo algo similar. También lo tienes en la docu de sqlalchemy https://docs.sqlalchemy.org/en/14/core/dml.html

1
aren-pulid0

Hmm a ver, la fecha, el overview y el titulo, en principio con el modelo de pydantic de schemas.ItemUpdate puedes comprobar que eso no son strings vacios, osea que eso ya almenos te lo quitarías.

Lo de la fecha de publicación en twitter es una línea, si se repite ese tipo de lógica por 2 lineas tampoco pasa nada, de momento dejalo y ya encontraras una manera de reutilizar.

1

Usuarios habituales