【问题标题】:If statement with cookiecutter has bad syntax如果带有 cookiecutter 的语句语法错误
【发布时间】:2019-04-24 10:00:17
【问题描述】:

我正在尝试在我的 django 项目中第一次使用cookiecutter 来创建项目骨架。

在我的cookiecutter.project_slug 中,我有一个 base.py 设置文件,最后有这部分:

import cookiecutter

{% if cookiecutter.use_celery == 'y' %}
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_IGNORE_RESULT = False
CELERY_TASK_TRACK_STARTED = True
# Add a one-minute timeout to all Celery tasks.
CELERYD_TASK_SOFT_TIME_LIMIT = 60
{% endif %}

但似乎 Django 不喜欢这部分的语法:invalid syntax error

你知道我怎样才能为上面的这部分写一个好的语法吗?

谢谢!

【问题讨论】:

  • 我猜你可能忘记了 if 标签末尾的 '-' {% if -%} {%- endif %}
  • @HigorRossato 添加- 不行 ;)
  • 你正在运行什么命令来提供invalid syntax error{% if %} 标签位于 cookiecutter 渲染的 jinja 模板中,以生成实际的 base.py 文件。你不应该在 Python 中运行模板,而且我认为模板不需要 import cookiecutter
  • @Alasdair 我正在尝试通过 sphinx_doc 生成 html doc 文件,make html 给出的问题是:There is a syntax error in your configuration file: invalid syntax (base.py, line 238) Did you change the syntax from 2.x to 3.x? Makefile:58: recipe for target 'html' failed。问题是指向这个 celery 部分,我的 Pycharm 根据错误的语法也给了我一个错误。
  • 目前还不清楚您要做什么。您是要在 sphinx 中记录项目骨架,还是您从中创建的实际项目?如果您逐步解释为达到这一点所做的工作,这可能会有所帮助。 base.py 是否包含其他 {% if cookiecutter.... %} 块?如果 base.py 是一个模板,那么它并不意味着是一个有效的 Python 文件,所以你会期望 PyCharm 出错。

标签: django cookiecutter-django cookiecutter


【解决方案1】:

看起来您克隆了cookiecutter-django 并尝试运行一些特定于Django 的命令,例如pip install -r requirements/local.txtpython manage.py runserver 0.0.0.0:8000?这不起作用,让我解释一下原因。

Cookiecutter-django 基于cookiecutter,这是一个创建项目模板的命令行实用程序。或者换句话说,您可以在 cookiecutter-django 的帮助下生成一个 Django 入门项目

不要克隆 cookiecutter-django,而是按照here 的描述运行以下命令。

$ pip install "cookiecutter>=1.4.0"
$ cookiecutter https://github.com/pydanny/cookiecutter-django

现在你会被 cookiecutter-django 询问一些问题。例如,如果你想使用芹菜与否。另见options page。根据您选择的选项 cookiecutter-django 将为您设置项目。

完成所有步骤后,您可以运行 Django 特定命令 - 请参阅 herehere if you did choose Docker

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2016-03-10
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多