herencia de plantillas y filtros personalizados

  Xiao Bian aprendido recientemente herencia de plantillas y filtros personalizados.

herencia de plantillas

  Django motor de plantillas es la parte más potente y más compleja de la plantilla que se hereda. herencia de plantillas te permite crear una base "esqueleto" de plantilla que contiene todos los elementos de su sitio, y se puede definir plantillas de edredón bloques pueden cubiertos.

  base.html esta página como una plantilla herede herencia indexxx.html y las referencias citadas ss.html esta página como una plantilla en la plantilla.

código base.html es la siguiente: como un esqueleto de una plantilla. Excavado tres pozos, contenido, título, de demostración.

<! DOCTYPE html> 
<html lang = " en " > 
<head> 
    <meta charset = " UTF-8 " > 
    <title> {% block title%} este título {% endblock%} </ title> 
</ head> 
<body> 
{ % rand carga% } 
{ % block content% } 
    este es el contenido 
{ %}% endblock <br> 
{ % block% de demostración } 
    esto es demostración 
{ % endblock% }
 <br>
Ah ja ja ja 
{ % AD% Bloque } 
Este es un anuncio 
{% Endblock% }
 </ body> 
</ html>

indexText.html:

  La porción marcada Red está fuera del bloque.

  Cuando abrimos el camino a la plantilla hija, algo bloque sub-plantilla contiene algo de sobreescritura es el mismo nombre que el bloque de plantilla padre contiene. Si hay algo que ninguna plantilla padre portada plantilla edredón, como se describió anteriormente texto de la plantilla padre. A continuación, mostrar el contenido de la llamada bloque de texto de la plantilla padre será heredada a la plantilla hija.

(Contenido no aparece después de la parte roja del navegador para abrir) visibles bloque heredado indexText.html África no se pueden mostrar.

<! DOCTYPE html> 
<html lang = " en " > 
{ % extends ' estudiante / base.html ' % } 
{ % block title%} {% hola mundo endblock% } 
{ % block content%} {{噜啦啦bloque .super}} {% endblock% } 
{ % rand carga% }
 <body> 
{ % block%} demostración Esta es indexDemo {% include ' / ss.html estudiante ' %} {% endblock% }
 <br> 
{ % block ad% } 
    índice广告eeeeee 
    {{block.super}} 
{% Endblock% } 

{ % block% rand } 
    este es función rand 
{ % endblock% }
 大家好!!
</ body>

filtro personalizado

* En el directorio del proyecto, crear un paquete python llamado común
* añade al archivo de configuración común installed_app
* Crear filtros personalizados y archivos de etiquetas en el interior de la guía telefónica común templatetags

* También se pueden crear dentro de la aplicación templatetags

templatetags carpeta para almacenar plantillas y etiquetas personalizadas.

FIG como rand.py - definido filtros

de django.template importación Biblioteca 
registrarse = Biblioteca () 

def mycut (valor, arg):
     retorno value.replace (arg, '' ) 

register.filter ( ' mycut ' , mycut)

El filtro como se define en base.html en:

{% Rand carga%}
<h1> {{ ' lhgfdaaaafgh ' | mycut: ' un ' }} </ h1> 
<h1> {{tn | mycut: ' un ' }} </ h1>

 

Escribir un método de filtros personalizados decoradores:

decorador:

def funa (diversión):
     def funb (a):
         de impresión (111 )
         de impresión (a) 
        divertido () 
    volver funb 

@funa 
def func ():
     print (2222 ) 


func ( 333)

salida:

333
2222
Funb

Inscrita en el rand.py

@ register.filter (name = ' mylower ' )
 def mylower (valor):
     retorno value.lower ()

base.html:

<h1> {{ ' ASSSS ' | mylower}} </ h1>

Resultados como texto

Benseghir

 

Supongo que te gusta

Origin www.cnblogs.com/a-runner/p/12592688.html
Recomendado
Clasificación