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

244
Visualizações
Plantilla html de Django en un archivo separado

Mi pregunta es más un tema de etiqueta que cualquier otra cosa. Estoy desarrollando una aplicación relativamente pequeña que lee datos XML y escribe en una base de datos Oracle y los envía a una página web.

Estoy leyendo el libro "La guía definitiva de Django: desarrollo web bien hecho", básicamente porque aprender algo nuevo es divertido. Reconozco cada vez más solicitudes de ingenieros con experiencia en Django.

En el libro, se recomienda mantener las plantillas html separadas del resto del código (por ejemplo, en archivos .html en su propia carpeta).

¿Hay alguna ventaja al hacerlo, en lugar de simplemente dejar una plantilla html incrustada en mi secuencia de comandos de python?

La plantilla que estoy usando tiene aproximadamente 15 líneas y usa los datos en una lista generada para completar el texto html:

 path_to_be_used = desktop_path + 'XURA_output.html' f = open(path_to_be_used, 'w') string = """<html> <head><title>XURA Messaging</title></head> <body> <p>XURA Message contents: the data contained in this page is the Push Notification output retrieved from the XURA server.<br> Upon arrival this data is subsequently written to the Oracle database. """ f.write(string) line1 = "<p><pre>TAG".ljust(28) + "| " + "TEXT".ljust(40) + " </pre>" f.write(line1) for tag in smsreport_list: tagInfo = tag[0] textInfo = tag[1] loop_line = "<pre>" + tagInfo.ljust(20) + "| " + textInfo.ljust(40) + " </pre>" f.write(loop_line) line2 = """</p></body> </html>""" f.write(line2) f.close()
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Dos cosas que saltan inmediatamente a la mente sobre las plantillas de django son el

  1. Herencia de plantilla
    Puede hacer que sus plantillas hereden un comportamiento similar entre ellas, algo que normalmente no puede hacer.

  2. Representar datos de vista en una plantilla
    En su código, está pasando datos a su cadena html , en tiempo de ejecución. Puede evitar esto utilizando el lenguaje de plantillas de django que tiene operaciones lógicas como if , elseif y operaciones de bucle como for . También puede pasar datos entre su plantilla html y sus vistas de django de una manera simple y eficiente, lo que hace que sus plantillas sean más "dinámicas".

Eche un vistazo aquí y aquí para ver un ejemplo simple de los dos casos anteriores (lea también el artículo completo ).

over 4 years ago · Santiago Trujillo Relatório

0

La respuesta de John da dos buenas razones. Aquí hay dos más:

  1. Separar las plantillas del código del controlador simplifica ambos. No es necesario saber HTML para trabajar en la función del controlador; no necesita saber Python para trabajar en las plantillas. También es mucho más probable que su editor o IDE proporcione resaltado de sintaxis, finalización, etc. con archivos separados.

  2. Mantener las vistas y los controladores separados (y los modelos también, aunque no esté preguntando por eso) a menudo da como resultado un código que se prueba más fácilmente con herramientas de prueba automatizadas como la biblioteca de pruebas unitarias integrada de unittest . Django aprovecha esta biblioteca para sus propias pruebas. Esto se debe en parte a un menor acoplamiento y posiblemente a una mayor cohesión .

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