【问题标题】:HTML Newbie Question: Colored Background for Characters in Django HttpResponseHTML新手问题:Django HttpResponse中字符的彩色背景
【发布时间】:2010-10-26 12:20:50
【问题描述】:

我想生成一个包含特定字符串的 HttpResponse。对于字符串中的每个字符,我都有一个要使用的背景颜色。

为简单起见,假设我只能在背景中使用绿色阴影,并且“背景颜色”数据表示绿色域中的“亮度级别”。

例如,响应可能是“abcd”,而我的“背景颜色”数据可能是:

[0.0, 1.0, 0.5, 1.0]

这意味着第一个字符'a'需要有深绿色背景(例如004000),第二个字符'b'需要有亮绿色背景(例如00ff00),第三个字符'c'需要有一个“中等”亮度(例如 00A000),等等。

我不想使用模板,而只想返回“纯文本”响应。这可能吗?

如果不是 - 我可以使用的最简单的模板是什么?

谢谢

【问题讨论】:

    标签: python html django colors


    【解决方案1】:

    可能是这样的:

    aString = 'abcd'
    newString =''
    colors= [0.0, 1.0, 0.5, 1.0]
    for i in aString:
        newString = newString + '<span style="background-color: rgb(0,%s,0)">%s</span>'%(colors.pop(0)*255,i)
    
    
    
    response = HttpResponse(newString)
    

    未经测试

    【讨论】:

    • 这对我有用,除了一个小错误修复:用于颜色值的值(在示例中为 colors.pop(0))应在字符串参数中乘以 255。
    • 和 i 和 colors.pop(0) 混合在一起。但现在我纠正了它
    【解决方案2】:

    您最好的选择是使用span 元素以及样式表。如果您不想使用模板,则必须内联呈现此内容。一个例子:

    string_data = 'asdf'
    color_data = [0.0, 1.0, 0.5, 1.0]
    response = []
    for char, color in zip(string_data, color_data):
        response.append('<span style="background-color:rgb(0,%s,0);">%s</span>' % (color, char)
    response = HttpResponse(''.join(response))
    

    如果你愿意,我想这也可以在模板中完成。

    【讨论】:

      【解决方案3】:

      您可以使用类似的东西在 django 视图本身中生成 html 并将其返回为 text/html

      data = "abcd"
      greenShades = [0.0, 1.0, 0.5, 1.0]
      
      out = "<html>"
      for d, clrG in zip(data,greenShades):
          out +=""" <div style="background-color:RGB(0,%s,0);color:white;">%s</div> """%(int(clrG*255), d)
      out += "</html>"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        相关资源
        最近更新 更多