¿Cuáles son los pasos técnicos exactos de un usuario que interactúa con una aplicación web? (Preferiblemente usando el marco Flask).

Estás en el camino correcto. Además, es una gran opción con Flask: es una excelente opción para aprender el desarrollo web.

  1. El usuario envía una solicitud http a una URL en su dominio. Esta solicitud se transmite a través de Internet hasta que llega a su servidor.
  2. El servidor web (Apache, Nginx, lo que sea) pasa la solicitud a una instancia de su aplicación Flask para su manejo.
  3. Flask hace coincidir la URL en la solicitud con la función en su aplicación que está asociada con esa URL (si no hay coincidencia, Flask devolverá un error).
  4. Se llama a esa función, lo que hace que se ejecute el código python. La función tendrá acceso al objeto “solicitud”, representado como un diccionario en Python. Para una aplicación web típica, el código de Python puede consultar una base de datos o realizar otras acciones en este punto. Dependiendo del tipo de solicitud y de lo que haga su aplicación, puede preparar una respuesta JSON, guardar datos en algún lugar, enviar una solicitud a otra aplicación, etc. La aplicación puede hacer lo que quiera. Una aplicación típica de Flask preparará un documento HTML usando Jinja basado en datos de una base de datos, pero esta es solo una posibilidad.
  5. La función devolverá algún valor. Este podría ser un documento HTML preparado (o estático), un objeto JSON, una cadena o un mensaje de error. La respuesta HTTP también tendrá un código de salida (Flask lo hará automáticamente si no especifica qué código usar) que le indica al navegador del usuario el estado de la solicitud manejada.
    La respuesta se devuelve al servidor web y se transmite a través de Internet al usuario, donde se recibe y procesa en su navegador (o cualquier aplicación cliente que envíe la solicitud).
  6. Flask realiza cualquier código de “desmontaje” y finaliza el manejo de la solicitud.

Una nota sobre la base de datos: la mayoría de las aplicaciones web usan una base de datos, pero una aplicación web solo necesita ser un programa que se ejecute en un servidor que pueda manejar solicitudes basadas en la web y devolver respuestas. Todo lo demás está construido sobre eso.