Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
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()
about 4 years ago · Santiago Trujillo
2 answers
Answer question

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 ).

about 4 years ago · Santiago Trujillo Report

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 .

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!