template bootstrap django django-templates django-context

bootstrap - django templates settings



¿Qué es un contexto en Django? (3)

Soy un principiante de django, así que estoy tratando de entender el concepto de procesador de contexto y contexto.

  • ¿Qué es un contexto y por qué lo usas?
  • ¿Es un contexto un valor que necesita tener disponible para usar en una plantilla?
  • ¿Es un contexto y un procesador de contexto lo mismo?

Apreciaré mucho tu respuesta. ¡Gracias por adelantado!


Cuando usa una plantilla Django, se compila una vez (y solo una vez) y se almacena para su uso futuro, como una optimización. Una plantilla puede tener nombres de variables entre llaves dobles, como {{myvar1}}, {{myvar2}}.

Un contexto es un diccionario con nombres de variables como la "clave" y sus valores como el "valor". Por lo tanto, si su contexto para la plantilla anterior se ve así: {myvar1: 101, myvar2: 102}, cuando pase este contexto al método de procesamiento de la plantilla, {{myvar1}} se reemplazará con 101 y {{myvar2}} con 102 en su plantilla Este es un ejemplo simplista, pero en realidad un objeto de contexto es el "contexto" en el que se representa la plantilla.

En cuanto a un ContextProcessor, este es un concepto ligeramente avanzado. Puede tener en su archivo settings.py una lista de algunos procesadores de contexto que incorporan un objeto HttpRequest y devuelven un diccionario (similar al objeto de contexto anterior). El diccionario (contexto) devuelto por el procesador de contexto se fusiona con el contexto que usted (el usuario) transmitió por Django.

Un caso de uso para un procesador de contexto es cuando siempre desea insertar ciertas variables dentro de su plantilla (por ejemplo, la ubicación del usuario podría ser un candidato). En lugar de escribir código para insertarlo en cada vista, simplemente puede escribir un procesador de contexto para él y agregarlo a la configuración de TEMPLATE_CONTEXT_PROCESSORS en settings.py.

Espero que esto tenga sentido. ¡Gracias por tomar la clase!

-Sid


Un contexto es un nombre de variable -> asignación de valor variable que se pasa a una plantilla.

Los procesadores de contexto le permiten especificar un número de variables que se establecen en cada contexto automáticamente, sin que tenga que especificar las variables en cada llamada render () .


El Context se describe bastante bien en la documentación oficial . En breve:

  1. En el uso diario, en su mayoría de forma indirecta, porque las funciones de ayuda construyen el Context para usted

  2. Ver 1 .: solo lo necesita si usa la api de bajo nivel

  3. No, un procesador de contexto es una función que toma una solicitud y devuelve un diccionario de variables que luego están disponibles en todas las plantillas que se representan con un RequestContext , por ejemplo:

    def get_stuff_from_session(request): return {''stuff'': request.session[''stuff'']}