jinja2 相关问题

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

如何导入嵌套的 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

评论在 jinja2 中不起作用

我有一个模板(test.html)如下: {% 扩展 'base.html' %} {% from "_formhelpers.html" import render_field %} {% 块内容 %} ... 我有一个模板(test.html)如下: {% extends 'base.html' %} {% from "_formhelpers.html" import render_field %} {% block content %} <div class="container"> <div class="row"> <div class="span6 offset3"> <form class="form-horizontal" action="/create_user/" method="post"> {{ form.csrf_token }} <dl> {{ render_field(form.name) }} {{ render_field(form.members) }} <!--<div class="control-group"> <label class="control-label"> {{ form.task.label }} </label> <div class='controls'> {{ form.task}} {% if form.task.errors %} <ul class="text-error"> {% for error in form.task.errors %} <li>{{ error }}</li> {% endfor %} </ul> {% endif %} </div> </div>--> </dl> </form> </div> </div> </div> {% endblock %} 使用 Flask 的 render_template("test.html", form=form) 渲染此模板时。我收到以下错误“UndefinedError:'tickapp.forms.TeamForm 对象'没有属性'任务'”。 正如你所看到的,我已经在模板(整个)中注释掉了“form.task”,并且模型和我的表单中也没有这样的字段。 我想知道为什么 jinja2 正在考虑注释 html 内容。我信任评论(!)并在这个问题上花了几个小时。最后,删除所有评论,它开始工作。在 jinja2 工作的人遇到过这个问题吗?你知道为什么会这样吗? 基本上,jinja2 只关心寻找评估它自己的块,而不是 HTML 的结构。如果你想完全排除模板的一部分,你可以使用 jinja2 的 comment 语法: {# This is a comment now. <div class="control-group"> ... </div> #} 这是 Google 上“jinja 评论不起作用”的顶部链接,所以我想描述另一个警告。 您可以使用 {# 来开始评论,并使用 #} 来结束 jinja2 的评论,如之前所述。但是,您不能嵌套评论。 也就是说,如果您有: {# This does NOT comment out the whole block now. <div class="control-group"> ... {# Inner comment that will stop the comment block here --> #} ... </div> #} 内部评论的评论结束符号最终会提前结束该块。 这可能是您对块评论的期望,但我第一次看到它时仍然感到困惑,所以我想我会提到它。

回答 2 投票 0

Flask 无法导入枚举?未定义错误:“枚举”未定义

我只是在 HTML 页面中编写此代码。 {% for i, val in enumerate(['a', 'b', 'c']) %} {{ 值 }} {% 结束 %} UndefinedError:“枚举”未定义 所以,F...

回答 4 投票 0

如何使用ansible中的jinja2过滤器?

我正在用jinjia2编程。我想使用来自 ansible 的很多 jinjia2 过滤器,例如 version_compare。有没有办法导入ansible的过滤器? 有没有扩展...

回答 2 投票 0

替换 prev_execution_date,因为它在气流 2 中已弃用

我正在将气流 1 管道迁移到气流 2 上,并偶然发现了已弃用的 {{ prev_execution_date }}。 我不确定可以用什么来代替。 我找到了 prev_data_interval_start_success 和

回答 1 投票 0

Jinja2 内嵌评论

如何在 Jinja2 参数列表声明中添加注释? 我尝试过的所有操作都会出错: jinja2.exceptions.TemplateSyntaxError:意外的字符 u'#' {{ 开关('var', [('1', 'f...

回答 4 投票 0

Ansible 解析逻辑比较 `1 < 1` to true in a loop item test despite filtering/casting to int

我正在对许多服务器运行一个游戏,其中第一个任务执行 SQL 查询以获取数据库的架构版本。例如,当 sch...

回答 1 投票 0

可以用flask执行Inclusion吗?

假设我有一个模板布局保存在template.html中。该模板包括横幅、侧面导航、内容容器和页脚。我可以使用flask以这种方式分解这些页面元素吗...

回答 4 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.