[仅此一天] 倍斯特 移动电源 苹果iphone5 4s手机充电宝三星 HTC 小米2充电器
id | username | |
1 | admin | admin@example.com |
2 | peter | peter@example.org |
3 | guest | guest@example.com |
表结构如上所示。
1:查询结果集方法:(Querying Records)
通过Flask-SQLAlchemy提供的一个query属性,当你通过model类的query属性,你可以得到一个数据库表的查询结果集。
i.User.query.filter_by(username='peter').first(),通过filter_by方法里的条件表达式来对query所得到的结果集进行过滤,得到你想要得到的结果。
example:
Retrieve a user by username通过username属性为’peter‘过滤结果集:
>>> peter = User.query.filter_by(username='peter').first()
>>> peter.id
1
>>> peter.email
u'peter@example.org'
当不存在结果集时返回none:
>>> missing = User.query.filter_by(username='missing').first()
>>> missing is None
True
ii.通过复杂的查询表达式来对结果集进行查询:
>>> User.query.filter(User.email.endswith('@example.com')).all()
结果: [<User u'admin'>, <User u'guest'>]
iii.通过order_by来对查询结果集进行排序。
>>> User.query.order_by(User.username)
[<User u'admin'>, <User u'guest'>, <User u'peter'>]
iV.使用limit方法来对结果集进行取前面的数据。
>>> User.query.limit(1).all()
[<User u'admin'>]
V.通过主键来获取相应的对象。
>>> User.query.get(1)
<User u'admin'>
Vi.如果在view function中不想让后台报None错误的话,可以通过get_or_404()取代get()方法、first_or_404()取代first()方法,使得前台报404错误。
example:
@app.route('/user/<username>')
def show_user(username):
user = User.query.filter_by(username=username).first_or_404()
return render_template('show_user.html', user=user)