python - python/django 中巨型 heredoc 的上下文替代

标签 python css django

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

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

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

最佳答案

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

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

然后将它传递给 View 中的上下文处理器:

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

关于python - python/django 中巨型 heredoc 的上下文替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226785/

相关文章:

javascript - 尝试使用 .hide() 隐藏内容时遇到问题

python - Django Rest Framework 没有找到 throttle 范围?

python - json.dumps(pickle.dumps(u'å')) 引发 UnicodeDecodeError

python - 使用 Python 检测重复文件

python - 如何格式化日志以便它们按列打印出来?

python - AJAX 中 CSRF token 缺失或不正确

python - 具有多种表示/格式的 Django REST API

python - 在我保存时集中控制导入不同版本的脚本

html - Angular 2 typescript :How to show dropdown and textbox based on radio button

php - 如果条目匹配 PHP 数组,Jquery 更改输入背景颜色?