Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Jinja模板处理器保护一些文件?_Python_Cookiecutter - Fatal编程技术网

Python 如何从Jinja模板处理器保护一些文件?

Python 如何从Jinja模板处理器保护一些文件?,python,cookiecutter,Python,Cookiecutter,我正在使用cookiecutter创建一个tornado项目,使用(它有几个bug,所以您可能无法开箱即用)。我遇到了一个我不知道如何解决的问题: jinja2.exceptions.TemplateSyntaxError: unexpected char '\\' at 124272 File "./{{cookiecutter.project_slug}}/static/swagger/lib/jsoneditor.min.js", line 10 我不确定,但我的印象是,cookie

我正在使用cookiecutter创建一个tornado项目,使用(它有几个bug,所以您可能无法开箱即用)。我遇到了一个我不知道如何解决的问题:

jinja2.exceptions.TemplateSyntaxError: unexpected char '\\' at 124272
  File "./{{cookiecutter.project_slug}}/static/swagger/lib/jsoneditor.min.js", line 10
我不确定,但我的印象是,
cookiecutter
正试图Jinja处理
jsoneditor.min.js
,这是不应该发生的,因为该文件中的“模板”不应该由
cookiecutter
处理,它恰好包含了
Jinja
正在使用的相同转义字符


有没有可能告诉cookiecutter不要处理某个目录中的文件?这可能是一个正确设置
cookiecutter
模板的问题,但不确定如何指定该模板。

默认情况下,cookiecutter将尝试将每个文件作为jinja模板处理,如果您的某个文件看起来像jinja模板,但只应按文字处理,则会产生错误的结果。从cookiecutter 1.1开始,可以告诉cookiecutter只复制一些文件,而不将它们解释为jinja模板()

为此,您必须在cookiecutter配置文件(
cookiecutter.json
)中添加一个
\u copy\u,而不使用\u render
键。它需要一个正则表达式列表。如果文件名与正则表达式匹配,它将被复制,而不是作为jinja模板处理

范例

{
    "project_slug": "sample",
    "_copy_without_render": [
        "*.js",
        "not_rendered_dir/*",
        "rendered_dir/not_rendered_file.ini"
    ]
}

这将不会处理任何javascript文件(以
.js
结尾的文件)、
未渲染目录中的任何文件以及
渲染目录中的
未渲染文件.ini
。它们只会被复制。

刚刚遇到了这个问题,也遇到了这个问题

这似乎是一个很好的补充,可以使用
{%raw%}
标记将文件的部分或整个模板标记为不被处理:

{% raw %}
{% comment %}Whatever jinja code goes here....{% endcomment %}
...
{% endraw %}

你可能想去。@syntonym:看来行得通,谢谢!你能回答这个问题吗,我再举一个简单的例子,upvote and accept?