0

在烧瓶中创建了一个基本的登录表单。索引页面呈现得很好,但是 /login 不呈现任何形式。也没有出现错误。[返回 200 响应]

我的 forms.py 是:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField
from wtforms.validators import DataRequired


class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    remember_me = BooleanField('Remember Me')
    submit = SubmitField('Sign In')

我的 routes.py 是:

from flask import render_template, flash, redirect, url_for from app import app from app.forms import LoginForm

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html', title='Home')


@app.route('/login')
def login():
    form = LoginForm()
    #return render_template('index.html', title='Home')
    return render_template('login.html', title='Sign In', form=form)

我的表格模板是:

{% extends "base.html" %}

{% block content %}
    <h1>Sign In</h1>
    <form action="" method="post" novalidate>
        <!---{{ form.hidden_tag() }}-->
        <p>
            {{ form.username.label }}<br>
            {{ form.username(size=32) }}
        </p>
        <p>
            {{ form.password.label }}<br>
            {{ form.password(size=32) }}
        </p>
        <p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
        <p>{{ form.submit() }}</p>
    </form>
{% endblock %}

上面模板扩展的索引库被渲染但没有表单:

在此处输入图像描述

终端输出:

在此处输入图像描述

在 chrome、safari 和 firefox 上试过这个。

4

1 回答 1

0

您可能忘记在 base.html 文件中声明您的块。

在 base.html 中:

<body>
    ... base content ...

    {% block body %}

    ... your login.htlm will set there ...

    {% endblock %}

</body>
于 2020-03-12T16:43:56.217 回答