[僅此一天] 倍斯特 移動電源 蘋果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)