在我对 django 还很陌生之前,已经编写了很多 Python 代码,并且到目前为止我很喜欢它。
我以前的 Web 经验是使用 PHP 的,为了使我的 CSS 易于维护,我使用 php 文件作为我的 CSS 并将其作为 CSS 内容类型。因此,我可以创建可以轻松更改的变量,以使网站中的所有内容都发生变化。
例如样式.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 中实现相同类型的事情,但不知道如何去做。我想我可以使用 View 来渲染 css 中的模板,但不太确定如何去做。就像在我的 View 中创建一个字典并将其传递给 render_to_response 然后在我的模板文件中引用它一样简单吗?
例如 View .py:
def style(request):
colours = {'pink' : '#91305f', 'green' : '#a4ce39'}
return render_to_response('styles.css', {'styles': colours},
context_instance=RequestContext(request))
然后,在 templates/styles.css 中:
html {
background-color:{{ styles.pink }};
color: {{ styles.green }};
}
这是一个可行的解决方案吗?如果是这样,似乎我正在将 View 耦合到模板,但我无法弄清楚我将在哪里存储实现此目的所需的数据。
谢谢 亚伦
最佳答案
如果我正确理解您的问题,您希望能够轻松更改整个网站的布局,而无需编辑所有样式表。对我来说,听起来您不想使用内联样式和生成的 css,而是使用 SASS 或 LESS 并使用变量来设计颜色:
关于css - css 中的 django 变量 - 我可以使用模板吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11591508/