Jinja2是Python的快速模板引擎。它具有完整的Unicode支持,自动转义,继承,宏和许多其他功能。
ansible playbook 中的变量在 Jinja for 循环的迭代之间不会持续存在
我不明白为什么列表元素列表在 Jinja 模板内的 for 循环迭代之间没有改变。 例如,剧本: - 名称:创建配置文件 主机:本地主机
使用 Jinja 创建 pdf 文件,而不创建 html 文件
我正在使用 html 模板创建 pdf 文件,并使用 weasyprint 将 html 文件转换为 pdf 文件 该代码运行完美,而且还创建了一个像 pdf 文件一样的 html 文件 有没有办法避免
我有一个字典列表 “tor_vlans”:[ { “开关-ls01”:{ “VLAN1”:{ “id”:“1”, ...
我正在尝试将以下 python 代码转换为 jinja 模板,以便我可以在 llama tokenizer 中使用我自己的聊天模板。但我是这个领域的新手,不知道该怎么办。 我的Python代码
我想一起使用Jinja2和Django的脆皮表单,但是当我在模板中加载crispy_forms_tags并尝试使用此模板标签渲染表单时,出现错误: 遇到未知标签'c...
Ansible:仅当满足每个附件的相应条件时才向电子邮件添加许多附件
在此线程中,解释了如何仅在满足条件时才将单个附件添加到通过community.general.mail 模块发送的邮件中。 现在我想添加来自 li 的许多文件作为附件...
默认情况下,Flask 使用存储在“templates”目录中的模板文件: /flaskapp /application.py /模板 /hello.html 有没有办法动态选择模板
我想将嵌套的 jinja 宏导入到其余文件中并调用它。 所以我们有 main.rst 文件,它导入一个 collection_of_macros.jinja 并且在 collection_of_jinja_macros.jinja 里面是一个...
我有一个门户,连续显示两列 在列的顶部,它们显示正确,但是当我向下滚动时,左列会中断并在左列数据的位置继续
我有一个带有 Flask 蓝图的 Flask 应用程序设置。现在我想使用 Parcel.js 来捆绑我的项目。并且还使用 postcss 删除未使用的 css,因为我在项目中使用 css 框架。但是...
jinja2.exceptions.TemplateSyntaxError
我在使用 Flask 库在 python 中进行编码时遇到 jinja2 错误 我不确定该错误意味着什么,也不知道如何阅读和解决该错误 任何人都可以帮助理解...
我想在 dbt 中创建一个 for 循环,循环遍历数据库中表的两列,并使用两列中每一行中的值创建 case when 语句。像这样: {% 已设置
我有一个包含 dict 项目的 .yml 文件: 要跳过的消息: - 服务:“测试1” 消息:“定时器操作执行期间出现异常” - 服务:“测试2” 留言:...
我有一个包含 dict 项目的 .yml 文件: 要跳过的消息: - 服务:“测试1” 消息:“定时器操作执行期间出现异常” - 服务:“测试2” 留言:...
开始一个新项目,想要列出 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)); };
Flask WTForms 应用程序创建要下载的文件。用户获取其他人的文件(同名)。怎么解决?
我的应用程序根据 WTForms 上的输入在服务器中创建一个文件。文件名永远不会改变。当新用户进来时,填写表格,旧文件将被覆盖。问题是当 2 你...
我正在尝试在 Pelican 网站的页脚中显示当前年份。我的理解是Pelican使用Jinja2模板。 在我的 footer.html 中我使用: {{ now().year }} 一个...
我很难循环 jinja 文件中的子变量 现在我已经在我的 jinja 文件中得到了这个: {% rsyslog_custom_templates.name 中的项目 %} $template "{{ item.1.template_tag }}","{{ item.1.
简单的问题,可能不需要很多代码: 如何使用 jinja2 显示由两个列表组成的字典(如下所示),将第二个列表中的项目与这些项目散布在一起......
只是想知道,jinja 不会对 dbt sql/model 表中的每一行应用函数吗? 与 my_cte AS ( 选择 t.id 作为 id, {{my_func('id')}} 作为金额 从表t ) 它返回 s...