Python/Djang中的语境替代巨型heredoc

2024-04-23 06:57:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个视图,为投票应用程序创建自定义css文件(用户选择他们的颜色,然后保存css文件,准备在投票中使用)。这是一个很大的css文件(大约1k行)。你知道吗

我试图避免用变量作为分隔符,将一个庞大的字符串列表拼接在一起。是否有一个上下文处理器可以通过我的视图访问,在那里我可以通过基本.css文件和变量字典(有点像django.shortcuts.render),然后检索结果字符串并通过ORM将其保存为文件?(我有一个CSS模型,其中有一个专用的FileField

我更希望能够生成然后存储一个静态文件,而不是通过上下文处理器为每个页面生成一个动态css文件。你知道吗


Tags: 文件django字符串用户视图应用程序列表字典
1条回答
网友
1楼 · 发布于 2024-04-23 06:57:18

因此,正如@DanielRoseman所建议的,实际上可以通过内置的django上下文处理器运行css文件。首先,在sass文件中将scss $variables替换为如下内容并重新编译:

@function myvariable(){
  @return unquote("{{ cssform.myvariable.value }}");
}

然后将其通过视图中的上下文处理器:

if request.method == "POST":
    form = CSSForm(request.POST)
    if form.is_valid():
        t = TemplateResponse(request, 'base.css', {"cssform": form})
        t.render()
        css_string = t.content
        #now do something with your css_string

相关问题 更多 >