css 提交时未验证培养瓶表格

0md85ypi  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(94)

我试图使一个表单,看起来像一个考试页面。我有一个复选框和一个提交按钮,提交按钮时,点击不做任何事情。
exam.html中的HTML代码

{% extends 'layout.html' %}

{% block content %}
    <h3 class="pt-5 p-4">exam page</h3>

    <div class="form">
        <fieldset class="form-group">
            <form method="POST" action="/" class="m-3">
                {{ form.hidden_tag() }}
                <legend class="border-bottom mb-4">question will here</legend>
                
                <ul class="form-group">
                {{ form.optA.label(class="form-text mt-3") }}
                {{ form.optA(class="mx-2 optionA mt-3") }}
                </ul>

            </form>
        </fieldset>

        <div class="form-group m-3">
            {{ form.submit(class="btn btn-outline-info") }}
        </div>
        
    </div>


{% endblock %}

我在www.example.com上的python代码app.py

from flask import render_template, url_for, redirect, request
from flask import Flask
from flask_wtf import FlaskForm
from wtforms import SubmitField, BooleanField

app = Flask(__name__, template_folder='templates', static_folder='static')
app.config['SECRET_KEY'] = 'mysecretkey'

class Question(FlaskForm):
    optA = BooleanField('option A')
    submit = SubmitField('Submit')

@app.route('/')
@app.route('/home')
def home():
    return render_template('home.html')

@app.route('/exam', methods=['GET', 'POST'])
def exam():
    form = Question()
    if form.validate_on_submit():
        print("w")

    print(form.errors)        

    return render_template('exam.html', form=form)

if __name__ == '__main__':
    app.run(debug=True)

if form.validate_on_submit()内部的代码在我按提交按钮时不运行。当我尝试使用form.errors打印任何错误时,它返回了一个空的dict。

yxyvkwin

yxyvkwin1#

有两个错误:

  • 操作URL错误,未指向正确的方法
  • 提交按钮在表单之外

以下是更正后的代码:

{% block content %}
    <h3 class="pt-5 p-4">exam page</h3>

    <div class="form">
        <form method="POST" action="/exam" class="m-3">
            <fieldset class="form-group">
                {{ form.hidden_tag() }}
                <legend class="border-bottom mb-4">question will here</legend>
                
                <ul class="form-group">
                {{ form.optA.label(class="form-text mt-3") }}
                {{ form.optA(class="mx-2 optionA mt-3") }}
                </ul>

                <div class="form-group m-3">
                    {{ form.submit(class="btn btn-outline-info") }}
                </div>
            </fieldset>
        </form>
    </div>

{% endblock %}

相关问题