我不知道是否可能,但我希望能够写出如下内容:
{% with var1 var2 var3 as some_list %}
{{ some_list|maximum }}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)
从任意数量的模板变量和/或文字中动态创建列表似乎很有用,所以我希望我忽略了一些简单的事情.
但是,如果不这样做,我想知道如何创建一个接受任意数量参数的模板标签.(我玩过simple_tag,适用于接受固定数量参数的标签.)
我不想去创建解析器和子类化的麻烦,django.template.Node直到我确定没有更简单的解决方案.
更新:我的问题没有准确地传达我想要实现的目标.我希望匹配/foo,/foo/以及/foo/(例如/foo/asdf/jkl)下的任何内容,而不是具体的给定路径.最初的问题如下.
我想匹配以下路径:
/foo
/foo/bar
/foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
这些也应该有用:
/foo/ -> /foo
/foo/bar/ -> /foo/bar
/foo/bar/baz/ -> /foo/bar/baz
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
app.get('/foo/*', ...);
Run Code Online (Sandbox Code Playgroud)
但是,这种情况失败了/foo.我知道我可以提供正则表达式而不是字符串,但这肯定是一个常见的要求,所以我会惊讶地发现模式匹配的DSL不适应它.
我非常喜欢Douglas Crockford最近的系列讲座,特别是关于编程语言历史的演讲.我想更详细地了解这个主题.
考虑这个问题语言不可知.我对教授编程的书不感兴趣.我对讨论在设计一种或多种语言时做出的决定的书感兴趣.
language-agnostic language-features programming-languages language-design
假设我们有一个简单的Python字典:
dict_ = {'foo': 1, 'bar': 2}
Run Code Online (Sandbox Code Playgroud)
哪个是复制这本词典的更好方法?
copy1 = dict(dict_)
copy2 = dict_.copy()
Run Code Online (Sandbox Code Playgroud)
是否有令人信服的理由支持一种方法而不是另一种方法?
我打算编写一个Hashify命令行客户端,我想确认在创建之前只是写入stdout不是一个选项.
(理想情况下,命令的行为类似于TextMate mate,在这种情况下,在浏览器中打开hashify.me并等待输入.)
我有一些看起来像这样的代码:
d = {'foo': True, 'bar': 42, 'baz': '!'}
a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}
Run Code Online (Sandbox Code Playgroud)
当然有更好的方式来表达这一点.我实际上阅读了文档,希望字典的copy方法接受键包含在新字典中:
# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
Run Code Online (Sandbox Code Playgroud)
我可以为此目的编写一个函数:
copydict = lambda dct, *keys: {key: dct[key] for key in keys}
a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')
Run Code Online (Sandbox Code Playgroud)
有没有比上面更好的解决方案?
我在一个Web应用程序上工作,其Makefile包含以下内容:
dist/index.html: src/templates/index.html
@bin/insert-scripts $< --output $@
Run Code Online (Sandbox Code Playgroud)
bin/insert-scripts使用<--scripts-->以下方法之一替换所提供的文件:
问题是如果一个人在一个模式下构建dist/index.html(比如说"开发"),然后在另一个模式下再次构建它而不触及依赖关系,make会说没有什么可做的.我希望能够使$ ENV成为dist/index.html的依赖:
dist/index.html: src/templates/index.html $ENV
@bin/insert-scripts $< --output $@
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,所以我考虑使用一个名为ENV的文件,其中包含"开发"或"生产".该文件将成为依赖项:
dist/index.html: src/templates/index.html ENV
@bin/insert-scripts $< --output $@
Run Code Online (Sandbox Code Playgroud)
可以设置ENV文件的内容,而不是设置环境变量.这似乎有点笨重,但至少准确地表示依赖树.
处理这种情况的最佳方法是什么?
我正在使用我没有创作的HTML文档.它包含以下内容:
<link rel="stylesheet" href="/static/oxygen-fontfacekit/stylesheet.css" charset="utf-8" />
Run Code Online (Sandbox Code Playgroud)
以这种方式指定字符集是否有效,或者是由Content-Type响应头确定的字符集?
简单问题:是否有用于检查字典中几个键是否存在的简写?
'foo' in dct and 'bar' in dct and 'baz' in dct
Run Code Online (Sandbox Code Playgroud)