Django-Basic Three (plantillas)

Uno, configuración de plantilla

①, cree una carpeta de plantillas en el proyecto, que puede almacenar archivos de página
②, busque TEMPLATES en el archivo de configuración de ajustes, DIRS: os.path.join (BASE_DIR, 'templates') significa buscar archivos html en plantillas en el directorio raíz.
③, APP_DIRS: Verdadero significa que si el html requerido no se encuentra en la carpeta principal de tempates, vaya a la carpeta en la aplicación para encontrarlo, pero la aplicación debe estar registrada en INSTALLED_APPS
④, si no se encuentran los archivos html, un TemplateDoesNotExist se lanzará de forma anormal

En segundo lugar, la representación de datos

Renderice el contenido en segundo plano en la página web

Inserte la descripción de la imagen aquí

①, las tuplas de lista se pueden leer directamente a través del subíndice
②, el diccionario puede leer el valor correspondiente a través de k

Tres, símbolos de etiqueta (si, para, enlace de URL)

1. Si y para etiqueta
Inserte la descripción de la imagen aquí

Nota:
①, for loop puede usar reverse. {% para libro en libros invertido%} recorrido inverso
②, se proporcionan algunos métodos para

Articulo método Descripción
1 forloop.counter El índice del bucle actual. Tome 1 como valor inicial.
2 forloop.counter0 El índice del bucle actual. Empiece con 0.
3 forloop.revcounter El valor de índice inverso del ciclo actual. Por ejemplo, si la lista tiene 5 elementos, el atributo es igual a 5 para el primer recorrido, 4 para la segunda vez, y así sucesivamente. Y con 1 como índice del último elemento.
4 forloop.revcounter0 Similar a forloop.revcounter. La diferencia es que el índice del último elemento comienza desde 0.
5 forloop.first Si es el primer recorrido.
6 forloop.last Si es el último recorrido.

③, {% for book in books%} El contenido del libro {% empty%} Si el libro está vacío, muéstrelo aquí {% endfor%}

2. Inversión de URL
. En el camino para ir a la página web a través de la URL en html, template_app no ​​es app_name en url, index es el nombre en la ruta y el medio está conectado a través

Inserte la descripción de la imagen aquí

Nota: La URL aquí se puede usar para empalmar cadenas o transferir parámetros de marcador de posición①
, empalmar cadenas: <-a href = "{% url'book: detail 'book_id = 1%}? Page = 1"> página de detalles del libro </ - a>
②, referencia de marcador de posición: <-a href = "{% url'book: detail 'book_id = 1 page = 2%}"> página de detalles del libro </-a>

3. Filtro de plantilla
Texto / representación |

Articulo Nombre del filtro uso Descripción
1 añadir { {value / add: "2"}} Agregue el parámetro pasado al valor original. Este filtro intentará convertir valores y parámetros en números enteros y luego agregarlos. Si el proceso de conversión falla, los valores y parámetros se empalmarán. Si es una cadena, se empalmará en una cadena, si es una lista, se empalmará en una lista.
2 cortar { {valor / corte: ""}} Elimina todas las cadenas especificadas en el valor. Similar a reemplazar (args, "") en Python.
3 fecha { {cumpleaños / fecha: "A / m / d"}} Formatee una fecha en una cadena de acuerdo con el formato especificado.
4 defecto { {valor / predeterminado: "nada"}} Si el valor se evalúa como falso. Por ejemplo, [], "", Ninguno, {} y otros valores que sean Falso en el juicio if utilizarán los valores predeterminados proporcionados por el filtro predeterminado.
5 primero { {valor / primero}} Devuelve el primer elemento de la lista / tupla / cadena.
6 último { {value / last}} Devuelve el último elemento de la lista / tupla / cadena.
7 floatformat
  • { {34.353333 / floatformat: 3}}
  • 34.353
redondeo
8 unirse { {value / join: "/"}} Similar a unirse en Python, concatenar listas / tuplas / cadenas con caracteres específicos.
9 longitud { {valor / longitud}} Obtenga la longitud de una lista / tupla / cadena / diccionario.
10 inferior { {value / lower}} Convierte todos los caracteres del valor a minúsculas.
11 Superior { {value / upper}} Similar a lower, excepto que la cadena especificada se convierte a mayúsculas.
12 aleatorio { {valor / aleatorio}} Seleccione aleatoriamente un valor en la lista / cadena / tupla dada.
13 seguro { {value / safe}} Es seguro marcar una cuerda. Eso desactivará el escape automático de esta cadena.
14 rebanada { {some_list / slice: "2:"}} Similar a la operación de corte en Python.
15 etiquetas de cadena { {value / striptags}} Elimina todas las etiquetas html de la cadena.
dieciséis truncatechars { {valor / truncatechars: 5}} Si la longitud de la cadena dada excede la longitud especificada por el filtro. Luego se cortará y se unirán tres puntos como puntos suspensivos.
Cuatro, incluye y extiende

1. Incluya, cargue contenido personalizado y también puede realizar acciones de filtrado de etiquetas.
Inserte la descripción de la imagen aquí

2. Extiende la herencia de la plantilla
Generalmente, se recomienda un archivo base.html. Pon la misma parte aquí y usa {% block name%} {% endblock%} como la interfaz del sucesor.
Luego, la subplantilla usa los nombres definidos en el bloque para compilar diferentes partes.

Cinco, cargue archivos estáticos (css, js)

①. Primero, asegúrese de que django.contrib.staticfiles se haya agregado a settings.INSTALLED_APPS.
②. Asegúrese de establecer STATIC_URL en settings.py.
③. Cree una carpeta llamada estática debajo de la aplicación instalada, luego cree una carpeta con el nombre de la aplicación actual debajo de la carpeta estática y luego coloque los archivos estáticos en esta carpeta.
④. Si hay algunos archivos estáticos que no están vinculados a ninguna aplicación. Luego, puede agregar STATICFILES_DIRS en settings.py, y DTL buscará archivos estáticos en la ruta de esta lista en el futuro.

STATICFILES_DIRS = [
	os.path.join(BASE_DIR,"static"),
]

⑤. Utilice la etiqueta de carga para cargar la etiqueta estática en la plantilla. Por ejemplo, para cargar el archivo style.css en la carpeta estática del proyecto.

 {
    
    % load static %}
  <link rel="stylesheet" href="{% static 'style.css' %}">

⑥. Si no desea usar load para cargar la etiqueta estática cada vez que carga un archivo estático en la plantilla, puede agregar'builtins ': [' django.templatetags.static '] a las PLANTILLAS / OPCIONES en la configuración .py, para que esté en la plantilla más adelante. Puede usar la etiqueta estática directamente en lugar de cargar manualmente.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_37697566/article/details/107082702
Recomendado
Clasificación