HTML新手问题:Django HttpResponse中字符的背景色
我想生成一个HttpResponse,里面包含一个特定的字符串。对于这个字符串中的每个字符,我都有一个想用的背景颜色。
为了简化问题,我们假设背景颜色只能是绿色的不同深浅,而这些“背景颜色”的数据代表了绿色的“亮度级别”。
举个例子,假设响应是'abcd',而我的“背景颜色”数据可能是:
[0.0, 1.0, 0.5, 1.0]
这就意味着第一个字符'a'需要用深绿色的背景(比如004000),第二个字符'b'需要用亮绿色的背景(比如00ff00),第三个字符'c'需要用“中等”亮度的背景(比如00A000),依此类推。
我不想使用模板,而是想直接返回“纯文本”响应。这样做可以吗?
如果不行,那我能用什么最简单的模板呢?
谢谢
3 个回答
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))
我想如果你愿意的话,这也可以在模板里实现。
2
你可以像这样在Django的视图中生成HTML,并将其作为文本/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>"
3
这可能是像这样的代码:
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)
这个代码还没有经过测试。