我正在尝试使用Python + flask创建我的第一个网站,现在我正在尝试使用Flask-SQLAlchemy将数据添加到SQLite数据库。
这是我尝试将用户添加到数据库但它失败的部分:
@app.route('/register', methods=['GET','POST'])
def register():
if request.method == 'GET':
return render_template('registracija.html')
elif request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User.Query(filter_by=username)
if user.count() == 0:
user = User(username=username, password=password)
db.session.add(user)
db.session.commit()
flash('You have registered the username {0}. Please login'.format(username))
return redirect(url_for('login'))
else:
flash('The username {0} is already in use. Please try a new username.'.format(username))
return redirect(url_for('register'))
else:
abort(405)
我的register.html页面:
<form method="post" >
<div class="col-md-4">
Username: <br />
Password: <br />
Please repeat password: <br />
</div>
<div class="col-md-4">
<input type="text" name="username" /> <br />
<input type="password" name="password" /> <br />
<input type="password" name="repeatpassword" /> <br /> <br />
<input type="submit" name="register" value="Registruotis" />
</div>
</form>
当我填写表格并按下注册按钮时,我得到:
AttributeError:type object&#39; User&#39;没有属性&#39;查询&#39;
如果有人可以指出我做错了什么会很好。我在Windows 10上运行Python 3.5。
答案 0 :(得分:1)
user = User.Query(filter_by=username)
应该是
user = User.query.filter_by(username=username).first()
Python中的所有名称都区分大小写:变量名称,函数名称,类名称,模块名称,异常名称。如果你能得到它,设置它,调用它,构造它,导入它或者它,它是区分大小写的。因此,您收到的有关用户没有任何属性的错误&#39;查询&#39;当它确实有一个属性&#39;查询&#39;。