Python Django动态css实现

Python Django动态css实现,python,django,dynamic-css,Python,Django,Dynamic Css,我有我的小博客应用程序,我想能够改变风格(不一定全部)从管理页面。在django项目中实现动态样式加载的“正确”方法是什么? 我自己的想法: 通过Python文件I/O编辑css文件 从数据库构建css文件 尽管这两种实现都有严重的缺点。 提前感谢您的解决方案 编辑:我更喜欢创意而不是django应用:)这样做的“正确”方法是在顶级div(甚至body)定义一个类,它决定了该页面的主样式。然后,该页面中所有可设置样式的元素通过级联的魔力继承此样式: .master-default { c

我有我的小博客应用程序,我想能够改变风格(不一定全部)从管理页面。在django项目中实现动态样式加载的“正确”方法是什么? 我自己的想法:
  • 通过Python文件I/O编辑css文件
  • 从数据库构建css文件
  • 尽管这两种实现都有严重的缺点。 提前感谢您的解决方案

    编辑:我更喜欢创意而不是django应用:)

    这样做的“正确”方法是在顶级div(甚至body)定义一个类,它决定了该页面的主样式。然后,该页面中所有可设置样式的元素通过级联的魔力继承此样式:

    .master-default {
        color: black;
    }
    .master-default .bordered {
        border: green;
    }
    .master-blue {
        color: blue;
    }
    .master-blue .bordered
        border: yellow;
    }
    
    等等。现在,您的管理界面只允许用户确定顶级主样式,然后在基本模板中使用:

    <div id="master" class="{{ userprofile.master_style }}">
        <div class="bordered">Border colour will vary according to master style</a>
    </div>
    
    
    边框颜色将根据主样式而有所不同
    

    等。

    可能重复:渲染CSS并不是不可能,就像渲染模板一样。您可以设置一个url,该url将在参数中接收您想要的配置,并为这种情况生成css。您将拥有css模板,并用您需要的内容对其进行补充。less.js库可能也很有用,一定要查看它!不一定——你可以这样做,使默认类也在其中,并且只覆盖你真正想要的,更具体一些。但是,假设我有20种不同的颜色,并想将其与20种不同的边框混合。最后,如果我想从整个颜色幽灵中选择,那么为颜色创建20种css样式,为边框创建20种不同样式。您可以有多个类,每个类一个。这样做的好处是增加了缓存样式的机会,并减少了对服务器的点击次数。压缩或缩小这40种样式将不会增加你的页面负荷。