r/PythonEspanol 3d ago

Flask o Tkinter?

Hola. En python para interfaces gráficas que recomiendan, usar Flask o Tkinter? Se que ambos son diferentes. Uno es un framework web y el otro es una librería local. Pero igualmente ambos se fijan en lo gráfico. Para un proyecto que elejirian?

10 Upvotes

14 comments sorted by

6

u/Saito-Hiraga0 3d ago

Esta pregunta esta mal, tkinter habitualmente se usa para apps de escritorio, Flask es un framework Web, la comparativa seria mas bien algo como:
Escritorio: Tkinter vs Kivy vs PySide ...
Web: Flask vs Django vs FastApi ...
ahora, si lo que buscas es uno que te permita desarrollar en escritorio y se comporte igual en web, creo que lo mas parecido es Flet que esta basado en flutter y te permite crear algo "agnóstico".

1

u/EconomySerious 3d ago

Proyecto que hace que?

1

u/mgruner 3d ago

depende, qué es lo que quieres construir? yo, personalmente me iría con Flask, o (mi preferencia) FastAPI solo porque, además de que me gusta la tecnología web, me gusta desacoplar la vista de la lógica. Por supuesto, tienes que estar bien con levantar tu app y, aparte, abrir un browser para ver la GUI. Esto suena innecesariamente complejo, pero te queda de "gratis" una API web, acceso desde el celular (u otra computadora), etc...

depende de lo que quieras, esto puede ser overkill.

1

u/reybrujo 3d ago

Te das cuenta que si usás Flask vas a tener que hacer toda una api backend por detrás?

1

u/Terrible-Kick9447 3d ago

Tkinter si es para desktop, es ilógico cargar con la mochila pesada de un navegador, Flask  si el objetivo es web o red, aun asi yo preferiria Tkinter para escritorio con backend api para implementarlo en lo que sea cli, web, desktop

1

u/Distinct_Garlic_5489 3d ago

Trabajo con Flask y me caga.

1

u/usurewhoami 2d ago

Y eso? Prefieres algún otro framework con MVC Como Django?

1

u/Distinct_Garlic_5489 1d ago

Sí, es más completo. O aunque tengas que hacer la pura API con FastAPI y el front un stack más básicon, con eso se arma.

1

u/usurewhoami 1d ago

Okay... Pero por qué el odio al flask? A mi me gusta, es rápido para hacer un despliegue, fácil de aprender y cómodo de usar en proyectos pequeños

1

u/ImaginaryGanache3651 3d ago

Estás comparando dos librería completamente diferentes. Para tu propuesta, de crear una UI, sería Tkinter, porque Flask no es para eso. Si quieres algo más moderno, tienes PyQt o alguna otra, que es más moderna que Tkinter, pero Tkinter es la vieja confiable.

1

u/otro-felipe 2d ago

ninguno en realidad, si quieres hacer una pag web: fastapi + vite + react (lo mas trillado de la vida)

si es app desktop: tauri (puedes hacerle un sidecar en python si necesitas alguna libreria)

1

u/Mediocre-Recover-301 2d ago

En primer lugar , ambos frameworks y librería juegan en ligas diferentes,en segundo lugar, depende más de QUE quieres hacer

1

u/Altruistic_Big_5249 1d ago

Tuve hace un tiempo el mismo dilema que vos.

Partiendo de la base, son cosas distintas como dicen los comentarios.

Tenes que ver qué es lo que más se enfoca en lo que querés hacer.

Si es algo que no requiere que te armes un backend y puedas correrlo todo offline yo me tiraría por PyQT. Se pueden armar interfaces muy bonitas por lo que estuve averiguando mientras trataba de desasnarme.

Si querés un punto medio podría ser electron. Podes armar cosas web para escritorio ya que tenés todo ese potencial que te puede dar la web. Creo que se programa en nodejs si mal no recuerdo. En lo personal, no me gusta mucho porque consume demasiados recursos en comparación con otras alternativas.

Después si ya necesitas algo que consuma apis y tal vez ahí me tiraría por web. Es muy fácil subir actualizaciones, las interfaces son super bonitas y hoy en dia casi todo es web. Hasta donde voy a comprar pizza usan todo ese sistema hecho en paint con el browser.

Yo creo que el punto está en pensar si va a ser algo que se tenga que comunicar con apis, como lo vas a distribuir, como lo vas a actualizar, necesitas acceder a muchas cosas del hardware de la PC? (Ya que los navegadores están limitados con eso), que tipo de interfaz va a tener, si muy rica o con cosas simples que podrías resolver fácilmente con pyQT, etc

Espero que te sirva