在我對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