获取django渲染通过上下文参数传递的python生成的html?

托马斯·金伯

我想获取一个数据列表,并构建一个包含该数据的<div>元素的正方形(或接近正方形)块,以便使用django在html页面中呈现。

我已经编写了一些代码,这些代码构建了一个正方形(ish)的元素块,并根据作为列表提供的某些输入对它们进行随机着色。

from math import sqrt, pow
import random

colour_index = {
    1 : 'bg-color-primary-0',
    2 : 'bg-color-primary-1',
    3 : 'bg-color-primary-2',
    4 : 'bg-color-primary-3',
    5 : 'bg-color-primary-4',
    6 : 'bg-color-secondary-0',    
    7 : 'bg-color-secondary-1',
    8 : 'bg-color-secondary-2',
    9 : 'bg-color-secondary-3',
    10 : 'bg-color-tertiary-4',
    11 : 'bg-color-tertiary-0',
    12 : 'bg-color-tertiary-1',
    13 : 'bg-color-tertiary-2',
    14 : 'bg-color-tertiary-3',
    15 : 'bg-color-tertiary-4'
}

width_class = {
    1 : 'width100pc',
    2 : 'width50pc',
    3 : 'width33pc',
    4 : 'width25pc',
    5 : 'width20pc',    
    6 : 'width16pc',
    7 : 'width14pc',
    8 : 'width12pc',
    9 : 'width11pc',
    10: 'width10pc'
}

def nextSQR(anumber):
    if (sqrt(anumber))==int(sqrt(anumber)):
        return pow(int(sqrt(anumber)),2)
    else:
        return pow(int(sqrt(anumber)+1),2)

def targetshape(anumber):
    return (sqrt(nextSQR(anumber)),sqrt(nextSQR(anumber)))

def divgrid(content_list):
    dstring = ""
    targ_shape = targetshape(len(content_list))
    w = targ_shape[0]
    for a in content_list:
        r = random.randrange(1,10)
        dstring = dstring + "<div class=\"" + colour_index.get(r) + " " + width_class.get(w) + "\">" + a + "</div>"
    return dstring

在views.py页面中,我将数据库中的元素放入列表中,通过divgrid()发送该列表,然后将结果传递到上下文中:

def home(request):
    stuff_list = testContent.objects.all()
    l = [a.name for a in stuff_list]
    mgl = mg.divgrid(l)
    context = {'grid' : mgl}
    return render(request, "test.html", context)

反过来,它通过双括号变量表示法{{grid}}来生成html页面。

所有这些都可以正常工作-除非不是看到所有结果都很好地组织了其div块格式,而是看到页面上逐字显示的html文本是这样的:

<div class="bg-color-primary-3 width33pc">Tom Kimber</div><div class="bg-color-secondary-0 width33pc">Tom</div><div class="bg-color-secondary-1 width33pc">Tom</div><div class="bg-color-primary-1 width33pc">Tom</div><div class="bg-color-secondary-3 width33pc">Tom</div><div class="bg-color-primary-1 width33pc">Lisa</div><div class="bg-color-primary-2 width33pc">Bobby Tables</div>

如何让django将生成的html代码解释为代码(即,将div渲染为div,导致元素内容被正确格式化),而不是原样显示的文本?

n

您可以将返回的字符串标记divgrid()为安全:

from django.utils.safestring import mark_safe

def divgrid(content_list):
    ...
    return mark_safe(dstring)

然后,您可以将上下文变量输出为HTML,而无需使用|safe过滤器:

{{ grid }}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

渲染参数的上下文子布局

来自分类Dev

通过片段传递上下文

来自分类Dev

django通过响应上下文无

来自分类Dev

获取Eclipse来识别Spring MVC项目中通过上下文包含的CSS

来自分类Dev

如何通过钩子获取上下文

来自分类Dev

通过上下文菜单运行cmd时,PATH变量不同

来自分类Dev

使用泛型通过上下文获取Spring bean

来自分类Dev

JavaCC可以通过上下文区分令牌吗?

来自分类Dev

Akka-如何通过上下文切换保持状态

来自分类Dev

使用<Provider>通过上下文传递存储在基于connect()的方案中不起作用

来自分类Dev

在Golang中通过上下文取消net.Listener

来自分类Dev

如何通过上下文从一个类的方法的意图是什么?

来自分类Dev

通过上下文清单的VIM选择,而不是按字母顺序排列

来自分类Dev

如何通过上下文注入共享SpecFlow中的步骤绑定类

来自分类Dev

通过html元素在JavaScript中传递执行上下文

来自分类Dev

通过Django中的类传递上下文变量

来自分类Dev

通过上下文提供程序中的参数传递函数

来自分类Dev

通过上下文更新单个状态时,为什么要完全重新渲染组件?

来自分类Dev

django:通过上下文字典将元素传递到我的模板

来自分类Dev

如何使nemo支持通过上下文菜单压缩文件?

来自分类Dev

无法选择Windows 7中通过上下文菜单打开的默认程序形式

来自分类Dev

XBRL:通过上下文将事实连接到演示文稿

来自分类Dev

派生实例可通过上下文键入

来自分类Dev

通过上下文菜单在终端中运行脚本(通过终端打开)?

来自分类Dev

FFmpeg通过上下文菜单项转换

来自分类Dev

django 渲染丢弃上下文值

来自分类Dev

Django 传递上下文

来自分类Dev

是更好地通过上下文将棱镜对象传递给解析器还是直接使用它?

来自分类Dev

如何使用 Ajax 更新通过上下文传递的 Django 变量

Related 相关文章

  1. 1

    渲染参数的上下文子布局

  2. 2

    通过片段传递上下文

  3. 3

    django通过响应上下文无

  4. 4

    获取Eclipse来识别Spring MVC项目中通过上下文包含的CSS

  5. 5

    如何通过钩子获取上下文

  6. 6

    通过上下文菜单运行cmd时,PATH变量不同

  7. 7

    使用泛型通过上下文获取Spring bean

  8. 8

    JavaCC可以通过上下文区分令牌吗?

  9. 9

    Akka-如何通过上下文切换保持状态

  10. 10

    使用<Provider>通过上下文传递存储在基于connect()的方案中不起作用

  11. 11

    在Golang中通过上下文取消net.Listener

  12. 12

    如何通过上下文从一个类的方法的意图是什么?

  13. 13

    通过上下文清单的VIM选择,而不是按字母顺序排列

  14. 14

    如何通过上下文注入共享SpecFlow中的步骤绑定类

  15. 15

    通过html元素在JavaScript中传递执行上下文

  16. 16

    通过Django中的类传递上下文变量

  17. 17

    通过上下文提供程序中的参数传递函数

  18. 18

    通过上下文更新单个状态时,为什么要完全重新渲染组件?

  19. 19

    django:通过上下文字典将元素传递到我的模板

  20. 20

    如何使nemo支持通过上下文菜单压缩文件?

  21. 21

    无法选择Windows 7中通过上下文菜单打开的默认程序形式

  22. 22

    XBRL:通过上下文将事实连接到演示文稿

  23. 23

    派生实例可通过上下文键入

  24. 24

    通过上下文菜单在终端中运行脚本(通过终端打开)?

  25. 25

    FFmpeg通过上下文菜单项转换

  26. 26

    django 渲染丢弃上下文值

  27. 27

    Django 传递上下文

  28. 28

    是更好地通过上下文将棱镜对象传递给解析器还是直接使用它?

  29. 29

    如何使用 Ajax 更新通过上下文传递的 Django 变量

热门标签

归档