css中的django变量-我可以使用模板吗
我以前写过很多python,对django还是个新手,到目前为止我很喜欢它 我以前的web经验是使用PHP,为了使CSS易于维护,我使用PHP文件作为CSS,并将其作为CSS内容类型。因此,我可以使变量,可以很容易地改变,使一切在网站上的变化 e、 g.styles.php:css中的django变量-我可以使用模板吗,css,django,django-templates,Css,Django,Django Templates,我以前写过很多python,对django还是个新手,到目前为止我很喜欢它 我以前的web经验是使用PHP,为了使CSS易于维护,我使用PHP文件作为CSS,并将其作为CSS内容类型。因此,我可以使变量,可以很容易地改变,使一切在网站上的变化 e、 g.styles.php: <?php header('Content-type: text/css'); $pink = '#91305f'; $green = '#a4ce39'; $black = '#000000'; $white =
<?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';
?>
然后,在templates/styles.css中:
html {
background-color:{{ styles.pink }};
color: {{ styles.green }};
}
这是一个可行的解决方案吗?如果是这样的话,看起来我是在将视图与模板耦合,但我无法确定在何处存储实现此目的所需的数据
谢谢
亚伦我不确定这是不是一个好方法。可能您可以将
class
添加到要应用特定样式的元素中
无论如何,如果你想继续这个方法,你可以实现你的上下文处理器,默认情况下它会添加这些变量。参考您可以完全按照您所说的去做,因此从不在静态根目录中的地方提供css,通过URL系统传递请求,并将文件呈现为页面。不过,对于所有客户来说,这是一种效率非常低的方法,尤其是当您在每页加载中提供多个CSS文件时。在这种情况下,您可以做的是将web服务器设置为无限期地缓存CSS文件,并且只在您发出命令时更新,在这种情况下,您将拥有静态CSS文件的所有速度优势和动态CSS文件的所有可维护性。如果您想为每个用户提供定制CSS,那么这种方法将不起作用。最后,您可以自己编写一个小解析器,它可以解析您创建的“meta css”文件,您可以在其中定义一个变量负载(如django模板),然后它将这些变量替换为您指定的变量,并将生成的css上载为静态文件。当然,您可以使用django引擎来实现这一点,只需请求页面并将生成的文件复制到静态目录,此时它将成为apache缓存的手动版本。如果我正确理解您的问题,您希望能够轻松更改整个站点的布局,不编辑所有样式表。对我来说,听起来您不想使用内联样式和生成的css,而是使用SASS或更少,并使用变量来设计颜色:
def style(request):
colours = {'pink' : '#91305f', 'green' : '#a4ce39'}
return render_to_response('styles.css', {'styles': colours},
context_instance=RequestContext(request))
html {
background-color:{{ styles.pink }};
color: {{ styles.green }};
}