css - css 中的 django 变量 - 我可以使用模板吗

标签 css django django-templates

在我对 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/

相关文章:

javascript - react "react-transition-group"不起作用

html - 当 float 元素旁边有元素时,如何使元素居中?

python - TypeError at/items/join() 参数必须是 str、bytes 或 os.PathLike 对象,而不是 'dict'

django - Google App Engine 教程问题 - 新数据存储模型

Django:支持带引号 (>1.5) 或不带引号的 URL 标记(较旧的 Django 版本)

django - 评估字符串作为模板标签 - Django

javascript - 如何在从数据库检索到的 html 中显示不同的颜色?

html - 如何根据视口(viewport)高度修复 div 的高度?

python - Django 休息框架 : get_FOO_display in serializer not letting me POST

python - Django 2.0 - 找不到 'password_change_done' 的反向。 'password_change_done' 不是有效的 View 函数或模式名称