jinja2 相关问题

Jinja2是Python的快速模板引擎。它具有完整的Unicode支持,自动转义,继承,宏和许多其他功能。

ansible playbook 中的变量在 Jinja for 循环的迭代之间不会持续存在

我不明白为什么列表元素列表在 Jinja 模板内的 for 循环迭代之间没有改变。 例如,剧本: - 名称:创建配置文件 主机:本地主机

回答 1 投票 0

使用 Jinja 创建 pdf 文件,而不创建 html 文件

我正在使用 html 模板创建 pdf 文件,并使用 weasyprint 将 html 文件转换为 pdf 文件 该代码运行完美,而且还创建了一个像 pdf 文件一样的 html 文件 有没有办法避免

回答 2 投票 0

如何根据匹配的键/值详细信息将字典中的项目组合到字典列表中

我有一个字典列表 “tor_vlans”:[ { “开关-ls01”:{ “VLAN1”:{ “id”:“1”, ...

回答 1 投票 0

如何使用jinja语法对循环中的第一个元素进行特殊操作?

我正在尝试将以下 python 代码转换为 jinja 模板,以便我可以在 llama tokenizer 中使用我自己的聊天模板。但我是这个领域的新手,不知道该怎么办。 我的Python代码

回答 1 投票 0

django 酥脆的形式与 jinja2

我想一起使用Jinja2和Django的脆皮表单,但是当我在模板中加载crispy_forms_tags并尝试使用此模板标签渲染表单时,出现错误: 遇到未知标签'c...

回答 5 投票 0

Ansible:仅当满足每个附件的相应条件时才向电子邮件添加许多附件

在此线程中,解释了如何仅在满足条件时才将单个附件添加到通过community.general.mail 模块发送的邮件中。 现在我想添加来自 li 的许多文件作为附件...

回答 1 投票 0

如何动态选择flask中要使用的模板目录?

默认情况下,Flask 使用存储在“templates”目录中的模板文件: /flaskapp /application.py /模板 /hello.html 有没有办法动态选择模板

回答 3 投票 0

如何导入嵌套的 jinja 宏?

我想将嵌套的 jinja 宏导入到其余文件中并调用它。 所以我们有 main.rst 文件,它导入一个 collection_of_macros.jinja 并且在 collection_of_jinja_macros.jinja 里面是一个...

回答 1 投票 0

为什么右列会断裂并位于引导行中左列的下方?

我有一个门户,连续显示两列 在列的顶部,它们显示正确,但是当我向下滚动时,左列会中断并在左列数据的位置继续

回答 1 投票 0

如何使用 Parcel.js 设置 Flask

我有一个带有 Flask 蓝图的 Flask 应用程序设置。现在我想使用 Parcel.js 来捆绑我的项目。并且还使用 postcss 删除未使用的 css,因为我在项目中使用 css 框架。但是...

回答 1 投票 0

jinja2.exceptions.TemplateSyntaxError

我在使用 Flask 库在 python 中进行编码时遇到 jinja2 错误 我不确定该错误意味着什么,也不知道如何阅读和解决该错误 任何人都可以帮助理解...

回答 2 投票 0

如何在 dbt jinja 中将两个表连接成字典

我想在 dbt 中创建一个 for 循环,循环遍历数据库中表的两列,并使用两列中每一行中的值创建 case when 语句。像这样: {% 已设置

回答 2 投票 0

转义字典中的引用

我有一个包含 dict 项目的 .yml 文件: 要跳过的消息: - 服务:“测试1” 消息:“定时器操作执行期间出现异常” - 服务:“测试2” 留言:...

回答 1 投票 0

如何转义.yml字典中的单引号

我有一个包含 dict 项目的 .yml 文件: 要跳过的消息: - 服务:“测试1” 消息:“定时器操作执行期间出现异常” - 服务:“测试2” 留言:...

回答 1 投票 0

我的网页中重复导航的问题

开始一个新项目,想要列出 sqlite 数据库的所有联系人。 我使用flask、js、html和jinja2。 我的 HTML 基于layout.html 开始一个新项目,想要列出 sqlite 数据库的所有联系人。 我使用flask、js、html和jinja2。 我的 HTML 基于layout.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"> <title>Buchhaltung - {% block title %}{% endblock %}</title> </head> <body> <header> <nav class="menu"> <ul> <li><a href="{{ url_for('index') }}">Home</a></li> <li><a href="{{ url_for('list_addresses', starting_letter='ALL') }}">Kontakte</a></li> <li><a href="{{ url_for('list_invoices') }}">Rechnungen</a></li> <!-- Add links for other menu items --> <!-- ... --> </ul> </nav> </header> <div class="content" id="content"> {% block content %}{% endblock %} </div> <footer> </footer> <script src="{{ url_for('static', filename='script.js') }}"></script> </body> </html>` 我的地址列表继承自这个layout.html `` ` {% extends 'layout.html' %} <!-- {% block title %}Address List{% endblock %} --> {% block content %} <div> <h1>Kontakt Liste</h1> {% include 'address_filter.html' %} </div> <div> {% include 'address_result.html' %} </div> {% endblock %}` `` address_filter.html 包含一行从 a-z 的字母和一个用于过滤地址列表的复选框。 `` <div class="row"> <div class="starting-letters-row"> <button class="all-button" onclick="filterAddressesByStartingLetter('ALL')">ALLE</button> {% for letter in starting_letters %} <button onclick="filterAddressesByStartingLetter('{{ letter }}')">{{ letter }}</button> {% endfor %} </div> <div class="filter-active"> <label for="filter-active">Show Active only:</label> <input type="checkbox" id="filter-active" {% if filter_active != 'false' %}checked{% endif %} onchange="filterAddressesByStartingLetter('ALL')"> </div> </div> `` **address_result.html 保存结果表。 Flask 实现如下所示 ** from flask import Flask, render_template, g, request, send_from_directory import sqlite3 from datetime import datetime, timedelta app = Flask(__name__) # Function to get the database connection def get_db(): if 'db' not in g: g.db = sqlite3.connect('data/rechnung.db') g.cursor = g.db.cursor() return g.db, g.cursor # Close the database connection at the end of each request @app.teardown_appcontext def close_db(error): if 'db' in g: g.db.close() # Route to render the home page @app.route('/') def index(): return render_template('index.html') def addresses_retrieve_startLetter(): db, cursor = get_db() # Retrieve unique starting letters for names (active and inactive to define the maximum letter row) cursor.execute('SELECT DISTINCT substr(adr_name, 1, 1) FROM adressen ORDER BY substr(adr_name, 1, 1)' ) starting_letters = [letter[0] for letter in cursor.fetchall()] return starting_letters # Route to display addresses for a specific starting letter @app.route('/addresses/<starting_letter>', methods=['GET', 'POST']) def list_addresses(starting_letter): db, cursor = get_db() #Get the filter_active parameter from the URL filter_active = request.args.get('filter_active', type=bool) if filter_active == 'true' or filter_active is None: filter_active_arg = 1 else: filter_active_arg = 0 starting_letters = addresses_retrieve_startLetter() # Define Headers headers = ['Name', 'Vorname', 'Firma', 'Ort', 'eMail', 'Id'] # Retrieve addresses from the database for the selected starting letter # If starting_letter is 'ALL', retrieve all addresses if starting_letter.upper() == 'ALL': cursor.execute('SELECT adr_name, adr_vorname, adr_firma, adr_ort, adr_email, adr_id FROM adressen WHERE adr_aktiv = ? ORDER BY adr_name', (filter_active_arg,)) else: cursor.execute('SELECT adr_name, adr_vorname, adr_firma, adr_ort, adr_email, adr_id FROM adressen WHERE substr(adr_name, 1, 1) = ? and adr_aktiv =?', (starting_letter,filter_active_arg,)) addresses = cursor.fetchall() # app.logger.info(addresses) return render_template('list_addresses.html', starting_letters= starting_letters, headers=headers, addresses=addresses, filter_active=filter_active)` 当启动服务器并打开我的页面时,导航会显示一次。 单击字母或复选框即可过滤列表 导航会重复。 GIT COpilot 告诉我解决方案..我替换了整个页面,而不是仅替换了新更改的数据对象 fetch(`/addresses/${startingLetter}?filter_active=${filterActive}`) .then(response => response.text()) .then(html => { // Create a temporary div to hold the HTML response var tempDiv = document.createElement('div'); tempDiv.innerHTML = html; // Extract the 'addressList' part from the response var newAddressList = tempDiv.querySelector('#addressList'); // Replace the existing 'addressList' with the new one var oldAddressList = document.querySelector('#content #addressList'); oldAddressList.parentNode.replaceChild(newAddressList, oldAddressList); }) .catch(error => console.error('Error:', error)); };

回答 0 投票 0

Flask WTForms 应用程序创建要下载的文件。用户获取其他人的文件(同名)。怎么解决?

我的应用程序根据 WTForms 上的输入在服务器中创建一个文件。文件名永远不会改变。当新用户进来时,填写表格,旧文件将被覆盖。问题是当 2 你...

回答 1 投票 0

当前年份,“现在”在 Pelican 模板中未定义

我正在尝试在 Pelican 网站的页脚中显示当前年份。我的理解是Pelican使用Jinja2模板。 在我的 footer.html 中我使用: {{ now().year }} 一个...

回答 1 投票 0

Ansible 循环子项目

我很难循环 jinja 文件中的子变量 现在我已经在我的 jinja 文件中得到了这个: {% rsyslog_custom_templates.name 中的项目 %} $template "{{ item.1.template_tag }}","{{ item.1.

回答 1 投票 0

Jinja2 嵌套包含两个列表的字典

简单的问题,可能不需要很多代码: 如何使用 jinja2 显示由两个列表组成的字典(如下所示),将第二个列表中的项目与这些项目散布在一起......

回答 1 投票 0

DBT 模型中的 Jinja 函数调用

只是想知道,jinja 不会对 dbt sql/model 表中的每一行应用函数吗? 与 my_cte AS ( 选择 t.id 作为 id, {{my_func('id')}} 作为金额 从表t ) 它返回 s...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.