HTML Newbie Question: цветной фон для персонажей в Django HttpResponse - PullRequest
1 голос
/ 15 мая 2009

Я хотел бы сгенерировать HttpResponse, который содержит определенную строку. Для каждого из символов в строке у меня есть цвет фона, который я хочу использовать.

Для упрощения, давайте предположим, что у меня может быть только зеленый оттенок на заднем плане, и что данные "цвета фона" представляют "уровень яркости" в зеленой области.

Например, ответом может быть 'abcd', а мои данные о "цветах фона" могут быть:

[0.0, 1.0, 0.5, 1.0]

Это означало бы, что первый символ 'a' должен иметь фон темно-зеленого цвета (например, 004000), второй символ 'b' должен иметь фон ярко-зеленого цвета (например, 00ff00), третий символ 'c' должна иметь «среднюю» яркость (например, 00A000) и т. д.

Я не хочу использовать шаблон, а просто возвращаю ответ в виде простого текста. Это возможно?

Если нет - какой самый простой шаблон я мог бы использовать для этого?

Спасибо

Ответы [ 3 ]

2 голосов
/ 15 мая 2009

вы можете использовать что-то вроде этого для генерации HTML в самом представлении django и вернуть его как текст / 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 голосов
/ 15 мая 2009

Это может быть что-то вроде этого:

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 голос
/ 15 мая 2009

Лучше всего использовать элемент 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))

Я полагаю, что это также можно сделать в шаблоне, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...