dhi的伙计们,我有 flask 问题,控制台给我错误,例如我不知道如何解决这个问题,我的html说我的表单未定义我想检查输入数据的验证,如果数据已通过验证成功输入,请转到将数据发送到我的数据库
file.py
@app.route('/reg.html',methods=['POST'])
def Register():
form=RegisterForm()
if form.validate_on_submit():
if request.method=='POST':
Email=request.form['email']
username=request.form['username']
password=request.form['password']
cur=mysql.connection.cursor()
cur.execute('''INSERT INTO dane (Email,username,UserPassword) VALUES (%s , %s , %s)''',(Email , username , password))
mysql.connection.commit()
cur.close()
return redirect(url_for('index'))
return render_template('reg.html',form=form)
reg.html
<div class="LoginSquare">
{% block content %}
<form method='POST' >
{{ form.csrf_token }}
{{form.RegcheckEmial(name='email',placeholder='Email')}} \
{% for error in form.RegcheckEmial.errors %}
<span style="color:red;">{{ error }}</br></span>
{% endfor %}
<div class="d1">
<input type='submit'name='Register' id='awdwd'class='wdawd'>
</div>
</form>
{%endblock%}
错误控制台:jinja2.exceptions.undefinederror:“form”未定义,在顶级模板代码{%block content%}中,文件“c:\python39\lib\site packages\jinja2\environment.py”,第474行,在getattr return getattr(obj,attribute)中
1条答案
按热度按时间yc0p9oo01#
代码中有两个问题。
您不必使用文件名作为路由。它可以是“/注册”或“/注册”,您可以通过类似url的方式访问页面
www.site.com/register
如果你使用/register
作为路线。您只允许对url进行post请求,您将无法访问该网站。它会给你错误
405 method not allowed
错误。你需要允许get
请求到url。所以你的路线应该是:
你可以去
yoursite.com/register
访问该页面。另外,我假设您访问了一个错误的url,因为您在问题中没有提供您没有提供的url
form
变量转换为模板。