HTML新手问题:Django HttpResponse中字符的彩色背景

时间:2009-05-15 14:04:30

标签: python html django colors

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

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

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

[0.0, 1.0, 0.5, 1.0]

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

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

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

由于

3 个答案:

答案 0 :(得分:2)

可能是这样的:

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)

未测试

答案 1 :(得分:2)

你可以使用这样的东西在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>"

答案 2 :(得分:1)

这里最好的选择是使用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))

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