我正在尝试将用户注册到sqlite数据库中。 我的表单包含一个带有数字值的隐藏字段。将html变量传递给烧瓶中的函数时出错
当我处理表单时,它返回以下错误: “浏览器(或代理服务器)发送请求,此服务器无法理解。”
这显然意味着一个变量不会传递给函数。
我该怎么处理这个问题? 我已经尝试在发送到函数之前将数据类型更改为后端的int(),我已使该字段可见etcetc。没有工作。有趣的是:当我在后端使用“打印”功能并禁用“User.regUser(email,username,password,rank)”时,它们的值显示在控制台中......所以我会假设变量包含我需要传递给函数的信息。
下面是代码:
浏览:
@app.route('/register', methods=['GET', 'POST'])
def register():
#if request.method == 'POST':encrypt
email = request.form['email']
username = request.form['username']
password = generate_password_hash(request.form['pass1'])
rank = int(request.form['rank'])
print(email, password, username, rank)
User.regUser(email, username, password, rank)
# db.session.add(User(email, username, password, "50"))
# db.session.commit()
return render_template('register.html')
型号:
from pjctBB.views import db
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, nullable=False)
username = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
rank = db.Column(db.Integer, nullable=False)
def __init__(self, email, username, password, rank):
self.email = email
self.username = username
self.password = password
self.rank = rank
def regUser(self, email, username, password, rank):
db.session.add(User(email, username, password, rank))
db.session.commit()
感谢一大堆!
也许它无法找到的形式字典的关键。向我们展示'register.html'。 –
请[edit]包含[mcve]。 – davidism
嗨lord63。实际上没有“register.html”模板。我将表单传递给Def register()函数。 – choubix