到目前为止,我已经尝试了所有建议的方法,但似乎没有任何效果。我用 Cookiecutter 创建了一个新的 Django 项目。我可以在本地并通过我的 Docker 机器运行它,但由于某种原因我无法将它部署到 AWS。我也一直在松散地关注这个文档:
.ebextensions/django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: config/wsgi.py
Run Code Online (Sandbox Code Playgroud)
项目结构
~/project
|-- .ebextensions
|-- `-- django.config
|-- .elasticbeanstalk
|-- `--config.yml
|--config
|-- | ...
|-- | wsgi.py
|-- project
|-- manage.py
Run Code Online (Sandbox Code Playgroud)
当我检查日志时,这是我得到的样本:
Target WSGI script not found or unable to stat: /opt/python/current/app/application.py
Run Code Online (Sandbox Code Playgroud)
当我运行 eb config 我得到这些设置:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: application.py
Run Code Online (Sandbox Code Playgroud)
我试过编辑它,移动 wsgi.py 文件,重命名它,但没有任何效果。我究竟做错了什么?
python django amazon-web-services amazon-elastic-beanstalk cookiecutter
如何添加要在 cookiecutter 使用的 jinja 模板中使用的自定义过滤器?
我尝试使用 pre_gen_project 钩子添加,它被调用,但我找不到一种方法让我的 python 函数在模板中作为 jinja 过滤器(或函数)可见。
我想有一个文件,可以选择在我的python cookiecutter项目中添加。
一个例子是在cookiecutter.json中具有变量
{"settings_file": true}
Run Code Online (Sandbox Code Playgroud)
这将settings.py在目录的根目录下创建一个文件(可能包含一些内容)。
cookiecutter是否提供执行此操作的选项?还是应该使用后期处理挂钩来编写创建文件的脚本(我觉得这不是最优雅的解决方案)。
我正在使用 cookiecutter 创建一个龙卷风项目,使用这个模板(它有几个错误,所以你可能无法开箱即用)。我遇到了一个我不知道如何解决的问题:
jinja2.exceptions.TemplateSyntaxError: unexpected char '\\' at 124272
File "./{{cookiecutter.project_slug}}/static/swagger/lib/jsoneditor.min.js", line 10
Run Code Online (Sandbox Code Playgroud)
我不知道,但我有一个印象cookiecutter是试图神社过程中jsoneditor.min.js,这是不应该发生的,因为在该文件中的“模板”是不应该被处理cookiecutter,它正好包括相同逃生Jinja正在使用的字符。
是否可以告诉cookiecutter不要处理某个目录中的文件?这可能是正确设置cookiecutter模板的问题,但不确定如何指定。
我正在尝试遍历 Python cookiecutter json 列表中的所有项目,并基于每个项目运行 bash 命令。
设置
我有以下几点cookiecutter.json:
{
"directory_name": "df-sharp",
"servers": ["db", "web"],
"myweb_provisioner": "webck"
}
Run Code Online (Sandbox Code Playgroud)
我有{{cookiecutter.myweb_provisioner}}.sh,其中包含此jinja2代码:
{% for server in cookiecutter.servers %}
mkdir -p ~/myproj/host_types/{{ server }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
问题
当我运行时cookiecutter create-server-tree,我得到以下信息:
Select servers:
1 - db
2 - web
Choose from 1, 2 [1]: 2
Run Code Online (Sandbox Code Playgroud)
和内容webck.sh是:
mkdir -p ~/myproj/host_types/w
mkdir -p ~/myproj/host_types/e
mkdir -p ~/myproj/host_types/b
Run Code Online (Sandbox Code Playgroud)
本Select不应该出现的菜单。我不想在列表中的 2 个元素之间进行选择。我想遍历它们并构造 2 个 bash 命令 - …
我正在创建我的第一个cookiecutter。总的来说,这进展顺利,但我现在想添加我自己的 jinja2 过滤器。
根据本期的评论,我创建了一个新的 Jinja2 扩展,很像这里的扩展。此扩展的完整代码在这里:
但是,以下简单示例演示了相同的错误:
# -*- coding: utf-8 -*-
from jinja2.ext import Extension
def slug(value):
return value
class PaperTitleExtension(Extension):
def __init__(self, environment):
super(PaperTitleExtension, self).__init__(environment)
environment.filters['slug'] = slug
Run Code Online (Sandbox Code Playgroud)
我已将此代码放入一个新jinja2_extensions目录并添加了一个简单__init__.py的如下:
# -*- coding: utf-8 -*-
from paper_title import PaperTitleExtension
__all__ = ['PaperTitleExtension']
Run Code Online (Sandbox Code Playgroud)
基于这篇文档,我还在“cookiecutter.json”文件中添加了以下内容:
"_extensions": ["jinja2_extensions.PaperTitleExtension"]
Run Code Online (Sandbox Code Playgroud)
但是,运行它会产生以下错误:
$ cookiecutter sigchiproceedings-cookiecutter
Unable to load extension: No module named 'jinja2_extensions'
Run Code Online (Sandbox Code Playgroud)
我猜我在这里遗漏了一些步骤,有人可以帮忙吗?
cookiecutter是模板生成器,在生成多种语言的项目时非常有用。但是,我想知道是否有办法持续测试它们?我不仅要生成最终产品(在给定一组输入的情况下,对目标文件的存在、名称和内容做出断言),而且还要生成在某些输入下运行时不会出错,但会拒绝其他输入。最好的方法是什么?我知道我可以编写一个简单的测试用例,但它无法访问命令行输入,是吗?有什么方法可以访问该函数并将命令行选项作为参数提供给它吗?
我正在使用预提交black和flake8钩子。
我error: cannot format在尝试对以下代码进行黑色格式化时得到了这个
from {{cookiecutter.project_name}} import my_module
Run Code Online (Sandbox Code Playgroud)
无论如何,是否有指示黑色,跳过/忽略特定于 cookiecutter 的语法?
命令:
cookiecutter https://github.com/pydanny/cookiecutter-django/
Run Code Online (Sandbox Code Playgroud)
将克隆最新版本cookiecutter-django,针对Django 1.9.
指向某些标签时有一个稳定部分README.其中一个是https://github.com/pydanny/cookiecutter-django/releases/tag/1.8.7.
但如果我尝试:
cookiecutter https://github.com/pydanny/cookiecutter-django/releases/tag/1.8.7
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
subprocess.CalledProcessError: Command '[u'git', u'clone', u'https://github.com/pydanny/cookiecutter-django/releases/tag/1.8.7']' returned non-zero exit status 128
Run Code Online (Sandbox Code Playgroud)
那么,如何指定cookiecutter使用那些稳定发布而不是master分支?
我刚刚用Heroku部署了我的Django网站,它在example.herokuapp.com上工作就好了.
我遇到的问题是当我去example.com时,我得到Bad Request(400).我查看了有关400个错误的Django文档,我似乎无法弄清楚什么是错误的.
我正在使用Django 1.9.5并使用cookiecutter-django启动该项目.Name.com是我的域名注册商.
我的设置的production.py:
ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['example.com'])
Run Code Online (Sandbox Code Playgroud)
我不是100%确定我的ALLOWED_HOSTS的DJANGO_ALLOWED_HOSTS部分是如何工作的,但是当我去我的Heroku仪表板并查看设置中的配置变量时,我看到DJANGO_ALLOWED_HOSTS是.herokuapp.com
Heroku自定义域名:
Domain Name DNS Target
*.example.com example.herokuapp.com
example.com example.herokuapp.com
www.example.com example.herokuapp.com
Run Code Online (Sandbox Code Playgroud)
Name.com DNS记录:
Type Host Answer TTL Prio
CNAME www.example.com example.herokuapp.com 300 N/A
CNAME example.com example.herokuapp.com 300 N/A
CNAME *.example.com example.herokuapp.com 300 N/A
Run Code Online (Sandbox Code Playgroud)
在控制台中,我输入我得到的主机命令:
$ host www.example.com
www.example.com is an alias for example.herokuapp.com
$ host example.com
example is an alias for example.herokuapp.com
Run Code Online (Sandbox Code Playgroud)
我可以找到大多数答案/论坛指向这3个地方,以找到错误,ALLOWED_HOSTS,Heroku自定义域和DNS记录.但我无法发现错误.
我发现的一条建议是要检查网站的其他区域.无论我走到哪里都会得到同样的错误,例如example.com/about/
我需要在name.com上设置其他内容吗?
cookiecutter ×10
python ×9
django ×3
jinja2 ×3
python-2.7 ×2
bash ×1
dns ×1
heroku ×1
pre-commit ×1
python-3.x ×1
python-black ×1