我正在使用Flask做一些应用程序,我现在正在注册。我在这种情况下使用SQL而不是SQLAlchemy(只是为了更多地使用SQL) 也使用Flask-WTF表格。
我成功创建了数据库表:
class RegisterForm(Form):
name = StringField(
'Username',
validators=[DataRequired(), Length(min=4, max=25)]
)
email = StringField(
'Email',
validators=[DataRequired(), Length(min=6, max=40)]
)
password = PasswordField(
'Password',
validators=[DataRequired(), Length(min=6, max=40)])
confirm = PasswordField(
'Repeat Password',
validators=[DataRequired(), EqualTo('password', message='Passwords must match')]
)
在我的views.py中,我接下来要注册:
@app.route("/register/", methods=["GET", "POST"])
def register():
form = RegisterForm(request.form)
if request.method == "POST" and form.validate_on_submit():
name = request.form["name"]
email = request.form["email"]
password = request.form["password"]
g.db.connect_db()
g.db.execute("INSERT INTO users(name, email, password) VALUES (?,?,?)", (name, email, password))
g.db.commit()
g.db.close()
return render_template("register.html", form=form)
我的简单形式:
<form action="/" method="post">
{{ form.csrf_token }}
<div class="form-group">
<label for="usernameInput">Username</label>
<input type="text" name="name" class="form-control" id="usernameInput">
</div>
<div class="form-group">
<label for="emailInput">Email</label>
<input type="email" name="email" class="form-control" id="emailInput">
</div>
<div class="form-group">
<label for="passwordInput">Password</label>
<input type="password" name="password" class="form-control" id="passwordInput">
</div>
<div class="form-group">
<label for="confirmInput">Confirm password</label>
<input type="password" name="confirm" class="form-control" id="confirmInput">
</div>
<button type="submit" class="btn btn-default btn-block">Register</button>
{% if error %}
<p class="error"><strong>Error:</strong> {{error}} </p>
{% endif %}
</form>
现在我一直在尝试,更改和修复2天,但无法找到问题。当我输入所有数据并单击注册时,我收到400 Bad request。 也许这是愚蠢的事情,我无法看到它。
如果有人可以提供帮助,我会赞不绝口。 如果需要更多信息或代码,请告诉我。
由于
答案 0 :(得分:0)
您的表单已发布到sa-east-1
,而不是/
。
您尚未显示为/register/
定义的路线,但可能不接受POST。