在我对django比较陌生并且非常喜欢它之前,写了很多python。css中的django变量 - 我可以使用模板
我以前的网站体验是在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 ?>;
}
所以如果我想改变我的整个网站黑手段,我只是改变$黑=顶部,并在所有地方我说过的CSS颜色:;将遵循。
我想在django中实现相同类型的东西,但无法弄清楚如何去做。我想我可以使用视图来呈现在CSS模板,但不知道如何去做这件事。是否像在我的视图中创建字典一样简单,然后将它传递给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 }};
}
这是一个可行的解决方案?如果是这样,似乎我将视图耦合到模板,但我无法弄清楚我会在哪里存储实现此目的所需的数据。
感谢 亚伦
太棒了!感谢@markijbema。我不知道这些事情存在。鉴于sass equires ruby,我做了一个快速谷歌,希望将依赖关系保持在最低限度,并且发现python-scss似乎是一个sass的python端口。任何想法/经验? [link](http://packages.python.org/scss/) – Alpaus 2012-07-21 11:49:57
个人而言,我不认为在当前的包管理者时代,这确实是一个问题。使用诸如rvm/bundler for ruby,virtualenv/pip for python和npm for node等具有一些额外环境的工具并不是真正的问题。我个人不知道python-scss,所以不能建议(但scss是好的版本,它是'新'sass) – markijbema 2012-07-21 11:57:38
使用类似django-compressor(http://django_compressor.readthedocs.org/en/最新/ index.html的) – 2012-07-21 16:42:08