Python: la etiqueta Django {{}} y el método de resolución de conflictos del separador de plantillas laytpl de Layui

Cuando use layui, debe usar la plantilla de la tabla de datos layui. En este momento, se encuentra con el problema de { {}} escapar. En django, { {}} es para obtener valores de variables, lo cual entra en conflicto con el separador de plantillas laytpl de Layui { {}} [{ {}} es el separador predeterminado en laytpl] .

Método 1: si la página actual no usa la tabla layui , puede usar el separador de redefinición

laytpl.config({
  open: '<%',
  close: '%>'
});

//分割符将必须采用上述定义的
laytpl([
  '<%# var type = "公"; %>' //JS 表达式
  ,'<% d.name %>是一位<% type %>猿。'
].join('')).render({
  name: '贤心'
}, function(string){
  console.log(string); //贤心是一位公猿
});   

 

Método 2: si la página actual usa la tabla de Layui , entonces django no necesita traducir el contenido especificado.

No redefina el delimitador, porque el delimitador se ha escrito en el código fuente del componente de tabla de datos de layui, por lo que el problema no se puede resolver personalizando el delimitador de plantilla en laytpl.config.

Si se utiliza, aparecerá un par de caracteres confusos en la página.

{
   
   {# if(d.data.toolbar){ }}

{
   
   {# } }}
{
   
   {# if(d.data.loading){ }}{
   
   {# } }}{
   
   {# var left, right; }}
{
   
   {# layui.each(d.data.cols, function(i1, item1){ }}{
   
   {# layui.each(item1, function(i2, item2){ }}{
   
   {# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}{
   
   {# if(item2.fixed === "right"){ right = true; } }}{
   
   {# var isSort = !(item2.colGroup) && item2.sort; }}{
   
   {# }); }}{
   
   {# }); }}
{
   
   {# if(item2.type === "checkbox"){ }}{
   
   {# } else { }}{
   
   {item2.title||""}}{
   
   {# if(isSort){ }}{
   
   {# } }}{
   
   {# } }}

{
   
   {# if(item2.type === "checkbox"){ }}{
   
   {# } else { }}{
   
   {item2.title||""}}{
   
   {# if(isSort){ }}{
   
   {# } }}{
   
   {# } }}

Gracias: https://www.cnblogs.com/ligh-test/p/9838145.html

Desde Django 1.5, las etiquetas {% verbatim%} son compatibles (palabra por palabra significa literalmente traducido, literalmente), y Django no representará el contenido envuelto por la etiqueta palabra por palabra.

Así que solo agregue las etiquetas {% verbatim%} y {% endverbatim%} antes y después de { {}}

Código de error original:

<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">{
   
   { d.name }} </a>

El código ejecutable modificado:

<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">{% verbatim %}{
   
   { d.name }} {% endverbatim %}</a>

 

Supongo que te gusta

Origin blog.csdn.net/weixin_38676276/article/details/107924536
Recomendado
Clasificación