【发布时间】:2021-08-19 10:50:30
【问题描述】:
提交表单时,页面未重定向。没有错误;一些信息被添加到 url,就是这样。之后数据库不会更新。
`from regist import app
from flask import render_template, redirect, url_for
from regist.models import Applicant
from regist.forms import RegisterForm
from regist import db
@app.route('/')
def index():
return render_template('index.html')
@app.route('/redirected')
def redirected():
return render_template('page.html')
@app.route('/join', methods=['GET','POST'])
def join():
form=RegisterForm()
if form.validate_on_submit():
applicant_to_create=Applicant(name=form.name.data,
surname=form.surname.data,
gender=form.gender.data,
dateOfBirth=form.dateOfBirth.data,
address=form.address.data,
qualifications=form.qualifications.data,
email=form.email.data,
phoneNumber=form.phoneNumber.data)
db.session.add(applicant_to_create)
db.session.commit()
return redirect(url_for('redirected'))
return render_template('join.html',form=form) `
初始网址为:“http://127.0.0.1:5000/join”
After adding some dummy data, it becomes: "http://127.0.0.1:5000/join?search=+%28ru%28rzshrhf&csrf_token=ImIwZWIwODcyNWQ4MWNkYjNjYWJkNjE5NTNkY2MwZWE5Yzk4MjNkOTci.YR4veQ.eyoXQWv4kRShFiZMEbPXoWzsbL0&name=dhss&surname=sdh&gender=M&dateOfBirth=sdthdh&address=dshtes&qualifications=dshdh&email =dhr&phoneNumber=dshd&提交=提交" 我故意将日期字段设置为接受文本。
这里是表单的html代码:
{%extends 'layout.html' %}
{%block head%}
<title>form</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/formstyle.css') }}">
{%endblock%}
{%block body%}
<body>
<h2>Join Us</h2>
<span id="requiredFieldMessage">fields marked (*) are required</span>
<form method="POST">
<!--{{ form.hidden_tag() }}-->
<table id="formTable">
<tr><td class="labelCell">{{ form.name.label()}}</td> <td class="labelCell">{{ form.surname.label()}}</td></tr>
<tr><td>{{ form.name(class="textbox") }}</td><td>{{ form.surname(class="textbox") }}</td></tr>
<tr><td class="labelCell">{{ form.gender.label()}}</td> <td class="labelCell">{{ form.dateOfBirth.label()}}</td></tr>
<tr><td>{{ form.gender() }}</td> <td>{{ form.dateOfBirth(class="textbox", placeholder="dd-mm-yyyy") }}</td></tr>
<tr><td class="labelCell">{{ form.address.label()}}</td> <td class="labelCell">{{ form.qualifications.label()}}</td></tr>
<tr><td>{{ form.address(class="textbox", rows="5", cols="40", placeholder="Enter four or five line address") }}</td> <td>{{ form.qualifications(class="textbox", rows="5", cols="40", placeholder="enter at least one certificate") }}</td></tr>
<tr><td class="labelCell">{{ form.email.label()}}</td> <td class="labelCell">{{ form.phoneNumber.label()}}</td></tr>
<tr><td>{{ form.email(class="textbox") }}</td> <td>{{ form.phoneNumber(class="textbox") }}</td></tr>
<tr colspan="2"><td><br>{{ form.submit(id="submitButton") }}<br></td></tr>
</table>
</form>
{%endblock%}
【问题讨论】:
-
请出示您的html模板代码
-
您的表单似乎没有正确的目标并且它不是发布操作。正如 gittert 所说,错误在 html 中而不是在您的 python 代码中。
标签: python flask flask-sqlalchemy flask-wtforms