在我对 django 很陌生之前写了很多 python,并且到目前为止很喜欢它。
我以前的 Web 经验是使用 PHP,为了使我的 CSS 易于维护,我使用一个 php 文件作为我的 CSS 并将其作为 CSS 内容类型提供。因此,我可以制作可以轻松更改的变量,以使站点中的所有内容都发生变化。
例如styles.php:
<?php header('Content-type: text/css');
$pink = '#91305f';
$green = '#a4ce39';
$black = '#000000';
$white = '#ffffff';
$std_font = "'Ruda', sans-serif";
$std_shadow = "text-shadow: 1px 1px 1px #000;";
$big_shadow = "text-shadow: 2px 2px 2px #000;";
$h_space = '10px';
?>
和...
html {
background-color:<?= $pink ?>;
color: <?= $green ?>;
font-family: <?= $std_font ?>;
}
因此,如果我想更改整个站点中黑色的含义,我只需更改顶部的 $black = 以及我的 CSS 中所有我说过 color: 的地方。将遵循。
我想在 django 中实现相同类型的东西,但不知道该怎么做。我在想我可以使用视图在 css 中呈现模板,但不确定如何去做。是否像在我的视图中创建一个 dict 并将其传递给 render_to_response 然后在我的模板文件中引用它一样简单?
例如views.py:
def style(request):
colours = {'pink' : '#91305f', 'green' : '#a4ce39'}
return render_to_response('styles.css', {'styles': colours},
context_instance=RequestContext(request))
然后,在模板/styles.css 中:
html {
background-color:{{ styles.pink }};
color: {{ styles.green }};
}
这是一个可行的解决方案吗?如果是这样,似乎我将视图耦合到模板,但我无法弄清楚我将在哪里存储实现这一目标所需的数据。
谢谢亚伦