5.8.1 创建表
db.create_all()函数创建表
|
|
删除旧表使用
|
|
db.session.add(admin_role)
db.session.add(mod_role)
db.session.add(user_role)
db.session.add(user_john)
db.session.add(user_susan)
db.session.add(user_david)
1 或者简写成:db.session.add_all([admin_role, mod_role, user_role,
… user_john, user_susan, user_david])
1 然后调用commit()方法提交会话:db.session.commit()
12345 ## 5.8.3 修改行调用add()方法也能更新模型## 5.8.4 删除行db.session.delete(mod_role)
db.session.commit()
1大专栏 Flask复习 五 数据库(二)ass="line">234 ## 5.8.5 查询行Flask-SQLAlchemy为每个模型类都提供了query对象.所有记录:Role.query.all()
User.query.all()
12 filter()过滤器可以配置query对象进行精确地数据库查询.若要查看SQLAlchemy为查询生成的原生SQL查询语句,只需把query对象转换成字符串:str(User.query.filter_by(role=user_role))
‘SELECT users.id AS users_id, users.username AS users_username,users.role_id AS users_role_id FROM users WHERE :param_1 = users.role_id’
```
常用的SQLAlchemy查询过滤器
过滤器 | 说明 |
---|---|
filter() | 把过滤器添加到原查询上,返回一个新查询 |
filter_by() | 把等值过滤器添加到原查询上,返回一个新查询 |
limit() | 使用指定的值限制原查询返回的结果数量,返回一个新查询 |
offset() | 偏移原查询返回的结果,返回一个新查询 |
order_by() | 根据指定条件对原查询结果进行排序,返回一个新查询 |
group_by() | 根据指定条件对原查询结果进行排序,返回一个新查询 |
常用的SQLAlchemy查询执行函数
方法 | 说明 |
---|---|
all() | 以列表形式返回查询的所有结果 |
first() | 返回查询的第一个结果,如果没有结果,则返回 None |
first_or_404() | 返回查询的第一个结果,如果没有结果,则终止请求,返回404错误响应 |
get() | 返回指定主键对应的行,如果没有对应的行,则返回 None |
get_or_404() | 返回指定主键对应的行,如果没有对应的行,则终止请求,返回404错误响应 |
count() | 返回查询结果的数量 |
paginate() | 返回一个Paginate对象,它包含指定范围内的结果 |