Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

229
Visualizações
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?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

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

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda