尝试为我的应用程序创建注册页。我使用的是Flask框架和来自pythonanywhere.com的MySQL数据库。在
@app.route('/register/', methods=["GET","POST"])
def register_page():
try:
form = RegistrationForm(request.form)
if request.method == "POST" and form.validate():
email = form.email.data
password = sha256_crypt.encrypt((str(form.password.data)))
c, conn = connection()
x = c.execute("SELECT * FROM users WHERE email = (%s)",
(email))
if int(x) > 0:
flash("That email adress is already in use.")
return render_template('register.html', form=form)
else:
c.execute("INSERT INTO users (email, password) VALUES (%s, %s)",
(thwart(email),thwart(password)))
conn.commit()
flash("Thanks for registering!")
c.close()
conn.close()
gc.collect()
session['logged_in'] = True
session['email'] = email
return redirect(url_for('dashboard'))
return render_template("sign-up.html", form=form)
except Exception as e:
return(str(e))}
一跑我就知道错误:不是全部字符串格式化期间转换的参数。 如何修复?可能是这个陈述的问题?在
c.execute("INSERT INTO users (email, password) VALUES (%s, %s)",
(thwart(email),thwart(password)))
只是把我之前的评论转换成一个答案,因为它似乎是正确的解决方案:-)
问题来自另一条线。你有这个:
这并不像你想象的那样。把
^{pr2}$email
放在括号中什么都不做,所以这行实际上相当于在一个字符列表中传递该变量中的每个字符。如果你这样做:…然后您将传递一个包含一个项的元组
email
,它应该能更好地工作。在相关问题 更多 >
编程相关推荐