Jinja2是Python的快速模板引擎。它具有完整的Unicode支持,自动转义,继承,宏和许多其他功能。
我想将嵌套的 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...
我有一个模板(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> #} 内部评论的评论结束符号最终会提前结束该块。 这可能是您对块评论的期望,但我第一次看到它时仍然感到困惑,所以我想我会提到它。
我只是在 HTML 页面中编写此代码。 {% for i, val in enumerate(['a', 'b', 'c']) %} {{ 值 }} {% 结束 %} UndefinedError:“枚举”未定义 所以,F...
我正在用jinjia2编程。我想使用来自 ansible 的很多 jinjia2 过滤器,例如 version_compare。有没有办法导入ansible的过滤器? 有没有扩展...
替换 prev_execution_date,因为它在气流 2 中已弃用
我正在将气流 1 管道迁移到气流 2 上,并偶然发现了已弃用的 {{ prev_execution_date }}。 我不确定可以用什么来代替。 我找到了 prev_data_interval_start_success 和
如何在 Jinja2 参数列表声明中添加注释? 我尝试过的所有操作都会出错: jinja2.exceptions.TemplateSyntaxError:意外的字符 u'#' {{ 开关('var', [('1', 'f...
Ansible 解析逻辑比较 `1 < 1` to true in a loop item test despite filtering/casting to int
我正在对许多服务器运行一个游戏,其中第一个任务执行 SQL 查询以获取数据库的架构版本。例如,当 sch...
假设我有一个模板布局保存在template.html中。该模板包括横幅、侧面导航、内容容器和页脚。我可以使用flask以这种方式分解这些页面元素吗...