flaskSQLAlchemy学习笔记

[仅此一天] 倍斯特 移动电源 苹果iphone5 4s手机充电宝三星 HTC 小米2充电器

id username email
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)

原文地址:https://www.cnblogs.com/dwnblogs/p/2563666.html