sqlalchemy的高级操作

order_by(排序)

需要导包
from sqlalchemy import desc,asc

desc 降序

db.session.query().order_by(desc()).all()

asc升序

db.session.query().order_by(desc()).all()

limit (限制)

db.session.query().limit().all()

group_by(分组)

db.session.query().group_by().all()

func(聚合函数)

需要导包
from sqlalchemy import account,max,min,avg

count() (个数)

db.session.query(func.acount()).all()

max() or min() (最大值or最小值)

db.session.query(func.max()).all()
db.session.query(func.max()).all()

avg() or sum() (平均值or求和)

db.session.query(func.avg()).all()

lower() (转小写)

db.session.query().filter(func.lower() == '').all()

干货

cast() (强转)

db.session.query(func.cast('',Numeric(10))).all()

substr() (切割字符串,下标索引是从1开始)

db.session.query(func.substr('',start,length)).all()

返回结果集的第二项

user = session.query(User).get(2)

返回结果集中的第2-3项

users = session.query(User)[1:3]

查询条件

user = session.query(User).filter(User.id < 6).first()

只查询部分属性

users = session.query(User.name).order_by(desc(User.name))
for user in users:
    print user.name

给结果集的列取别名

users = session.query(User.name.label('user_name')).all()
for user in users:
    print user.user_name

去重查询(需要导入distinct方法)

from sqlalchemy import distinct
users = session.query(distinct(User.name).label('name')).all()

统计查询

user_count = session.query(User.name).order_by(User.name).count()
age_avg = session.query(func.avg(User.age)).first()
age_sum = session.query(func.sum(User.age)).first()

label(’’) (别名)

users = session.query(func.count(User.name).label('count'), User.age).group_by(User.age)
for user in users:
    print 'age:{0}, count:{1}'.format(user.age, user.count)

exists查询(不存在则为~exists())

from sqlalchemy.sql import exists
session.query(User.name).filter(~exists().where(User.role_id == Role.id))
SELECT name AS users_name FROM users WHERE NOT EXISTS (SELECT * FROM roles WHERE users.role_id = roles.id)

除了exists,any也可以表示EXISTS

session.query(Role).filter(Role.users.any())

random

from sqlalchemy.sql.functions import random
user = session.query(User).order_by(random()).all()
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flask SQLAlchemy 是一个用于在 Flask 应用中使用 SQLAlchemy 的扩展。SQLAlchemy 是一个 Python 的 SQL 工具包和对象关系映射(ORM)库,它提供了一种高级数据库访问方式,使得操作数据库更加方便和灵活。 使用 Flask SQLAlchemy,你可以在 Flask 应用中轻松地定义数据库模型、进行数据库迁移、执行数据库查询和操作等。它将 SQLAlchemy 的功能集成到 Flask 框架中,提供了一种更加便捷的方式来处理数据库相关的任务。 要使用 Flask SQLAlchemy,首先需要安装它。可以使用 pip 命令进行安装: ``` pip install flask_sqlalchemy ``` 安装完成后,在 Flask 应用中导入并初始化 Flask SQLAlchemy 扩展: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接字符串' db = SQLAlchemy(app) ``` 其中,`app.config['SQLALCHEMY_DATABASE_URI']` 是数据库的连接字符串,用于连接到数据库。你需要根据自己的数据库配置来设置该值。 接下来,你可以定义数据库模型,例如: ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return f'<User {self.username}>' ``` 在上述代码中,我们定义了一个名为 `User` 的模型,它包含了 `id`、`username` 和 `email` 这三个字段。`db.Column` 用于定义字段的类型和约束。 接下来,你可以使用 Flask SQLAlchemy 进行数据库操作,例如插入数据、查询数据等。具体的操作可以参考 Flask SQLAlchemy 的文档和 SQLAlchemy 的文档。 需要注意的是,Flask SQLAlchemy 会自动管理数据库会话,并自动处理数据库连接、事务等细节,使得数据库操作更加简洁和安全。 希望以上信息对你有所帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕竟尹稳健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值