我有一些小的(500或600行模板代码)Django站点,我想将它们迁移到使用Jinja2 ......但是我想知道它将会有多少工作.那么,一般来说,将一个小的Django站点迁移到Jinja2有多少工作?它是否"值得"?
我在jinja2模板中有一些变量,这些变量是由';'分隔的字符串.
我需要在代码中单独使用这些字符串.即变量是variable1 ="green; blue"
{% list1 = {{ variable1 }}.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
Run Code Online (Sandbox Code Playgroud)
我可以在渲染模板之前将它们拆分,但由于它有时在字符串中最多有10个字符串,因此会变得混乱.
在我做之前我有一个jsp:
<% String[] list1 = val.get("variable1").split(";");%>
The grass is <%= list1[0] %> and the boat is <%= list1[1] %>
Run Code Online (Sandbox Code Playgroud)
编辑:
它适用于:
{% set list1 = variable1.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
Run Code Online (Sandbox Code Playgroud) 如何逃避Ansible 1.9.2中的双花括号?
例如,如何在以下shell命令中转义双花括号?
- name: Test
shell: "docker inspect --format '{{ .NetworkSettings.IPAddress }}' instance1"
Run Code Online (Sandbox Code Playgroud) Flask==1.0.2当我最近部署包含和的项目时Jinja2>=2.10.1,出现以下错误。我前一天部署的时候运行得很好。我尝试更新,Jinja2但这并没有解决问题。
File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.7/site-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked …Run Code Online (Sandbox Code Playgroud) 我正在使用Flask 0.7版.我已将静态内容的路径存储在配置文件中并使用它加载
app.config.from_envvar(<file_name>)
Run Code Online (Sandbox Code Playgroud)
我是否可以在模板中访问此配置变量而无需通过视图传递变量?
我有一个Flask站点,我想使用Angular JavaScript框架.不幸的是,似乎分隔符重叠.
如果两者都依赖于双花括号({{ expr }}),我如何使用Angular和Jinja2 ?它甚至可能吗?
我试过了
list1 = [{"username": "abhi", "pass": 2087}]
return render_template("file_output.html", list1=list1)
Run Code Online (Sandbox Code Playgroud)
在模板中
<table border=2>
<tr>
<td>
Key
</td>
<td>
Value
</td>
</tr>
{% for dictionary in list1 %}
{% for key in dictionary %}
<tr>
<td>
<h3>{{ key }}</h3>
</td>
<td>
<h3>{{ dictionary[key] }}</h3>
</td>
</tr>
{% endfor %}
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)
上面的代码将每个元素分成多个
核心价值 [
{
"
ü
小号
e ...
我在一个简单的python脚本中测试了上面的嵌套循环,它工作正常,但不是在jinja模板中.
Jinja2和Mako显然都非常快.
这些比较如何(功能较少但可能对我正在做的事情足够好)string.Template?
我需要以编程方式区分Jinja模板文件,其他模板文件(如ERB)和无模板纯文本文件.
根据Jinja文件:
Jinja模板不需要具有特定的扩展名:.html,.xml或任何其他扩展名就可以了.
但是当需要显式扩展时我应该使用什么?.py是误导性的,包括"jinja"和"extension"在内的任何搜索都被关于Jinja Extensions的讨论严厉搜索.
我可以轻松地规定一个项目范围的惯例(.jnj或者.ja想到),但这是开源的,所以如果已经在某处建立了实践,我不想逆势而行.
编辑1:同样,我理解Jinja项目 - 有目的地 - 没有定义默认文件扩展名.我问的是,是否有任何非官方的惯例出现在某些项目特定原因所需的情况下.
编辑2:澄清:这不适用于HTML内容.
默认情况下,flask使用存储在"template"目录中的模板文件:
/flaskapp
/application.py
/templates
/hello.html
Run Code Online (Sandbox Code Playgroud)
有没有办法根据用户登录动态选择模板目录?这就是我想要的目录结构:
/flaskapp
/application.py
/templates (default template goes here)
/hello.html
/userdata
/user1
/template1
hello.html
/template2
hello.html
/user2
/template1
hello.html
/template2
hello.html
Run Code Online (Sandbox Code Playgroud)
现在如果我有登录用户的用户名和用户激活的模板名称,是否可以动态选择加载模板文件的目录?例如,
/userdata/<username>/<activated template name>/
Run Code Online (Sandbox Code Playgroud)
而不是固定的
/templates/
Run Code Online (Sandbox Code Playgroud)
我想要实现的是像我的网络应用程序的主题系统的wordpress,用户可以上传/选择他的网站的主题.