【问题标题】:How can I create text forms with jinja?如何使用 jinja 创建文本表单?
【发布时间】:2019-10-25 14:27:50
【问题描述】:

背景

我想用 jinja、Python 和 HTML 创建一个登录表单。

The official document 介绍了一个使用 jinja 的文本表单示例。

问题

但是,我在使用 jinja 创建文本表单时遇到了两个问题。 我找不到网页上提到的“forms.html”文档。 没有 Python 示例来执行用 HTML 和 jinja 编写的代码。

如何修复我当前的代码以在 jinja 中执行文本表单的示例程序?

程序

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Login Page</title>
</head>
<body>
{% from 'forms.html' import input as input_field, textarea %}
<dl>
    <dt>Username</dt>
    <dd>{{ input_field('username') }}</dd>
    <dt>Password</dt>
    <dd>{{ input_field('password', type='password') }}</dd>
</dl>
<p>{{ textarea('comment') }}</p>
{% endcall %}
</body>
</html>

【问题讨论】:

    标签: python html forms jinja2


    【解决方案1】:

    forms.html 是一个模板文件,它将给出文本框和文本区域的属性。

    您必须在项目目录中包含模板文件并将它们加载到python文件中。

    根据您的引用 forms.html 文件应包含以下代码。

    {% macro input(name, value='', type='text') -%}
        <input type="{{ type }}" value="{{ value|e }}" name="{{ name }}">
    {%- endmacro %}
    
    {%- macro textarea(name, value='', rows=10, cols=40) -%}
        <textarea name="{{ name }}" rows="{{ rows }}" cols="{{ cols
            }}">{{ value|e }}</textarea>
    {%- endmacro %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2021-11-22
      • 1970-01-01
      • 2020-11-12
      • 2021-04-14
      相关资源
      最近更新 更多