Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

103
Vistas
Devolver la vista HTML frente al objeto JSON con HTML usando Flask y AJAX

Estoy desarrollando una aplicación Flask de una sola página usando AJAX para navegar por mis rutas. Por ejemplo, cuando un usuario hace clic en un enlace de navegación, se realiza una solicitud GET con AJAX que llama a una ruta como "/profile", que devuelve un JSON que incluye el HTML que se reemplazará en la pantalla.

Si escribo una ruta existente en el navegador sin llamar a una solicitud AJAX, el HTML se devolverá como se esperaba como un JSON y simplemente se pegará como texto en la pantalla. Me gustaría dar a los usuarios la posibilidad de escribir rutas en la barra de direcciones y hacer que la página se cargue en lugar de simplemente pegar el JSON con el HTML. ¿Cuál es la forma correcta de devolver una vista en lugar de simplemente el JSON desde mi punto final Flask si no se realizó una solicitud AJAX (alguien simplemente escribe "/ perfil" en el navegador sin hacer clic en el enlace de navegación del perfil)?

Mi primer pensamiento es pasar algún tipo de parámetro como parte de cada solicitud de AJAX y hacer que el backend verifique si el parámetro existe al ser llamado, donde devolvería una vista en lugar de JSON. Eso parece muy ineficiente y haría que el código fuera más complejo al agregar muchas más declaraciones if. Además, tendría que crear 2 archivos HTML para cada ruta.

¿Cuál es la forma correcta de hacer esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si está realizando una solicitud ajax, puede agregar esto a su ruta.

 _xhr_key = request.headers.get('X-Requested-With') if _xhr_key and _xhr_key == 'XMLHttpRequest': # if true this means that its an AJAX call #return data for AJAX function else: #return data for regular request #render HTML template to the user over here since its a regular request

Las solicitudes Ajax crean un objeto XMLHttpRequest . Entonces, si el objeto XMLHttpRequest está presente en el encabezado, significa que es una solicitud AJAX. Así es como puede cargar una página web cuando un usuario normalmente la carga, por lo tanto, puede mostrar la página usando AJAX y cuando alguien normalmente escribe el enlace en el navegador

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda