Flask-sqlalchemy扩展学习

flasqlalchemy

数据库相关配置:
  1. 引入相关模块
from flask_sqlalchemy import SQLAlchemy
  1. 创建数据库实例
db = SQLAlchemy(app)
  1. 配置数据库相关信息
#数据库地址用户名及密码以及数据库名称
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/flask_sql_demo'
#动态追踪修改设置未设置只会提示警告不建议开启
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  1. 创建数据库模型
#操作数据库模型须继承自db.Model
class Role(db.Model):
#定义表名
    __tablename__ = 'roles'
    #定义字段名
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(16),unique=True)
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(16), unique=True)
    role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
  1. 表操作
    增删改
#增
role = Role(name = 'admin')
db.session.add(role)
db.session.commit()
##同时添加多条数据
role1 = Role(name = 'admin')
role2 = Role(name = 'user1')
role3 = Role(name = 'user2')
db.session.add_all([role1,role2,role3])
db.session.commit()
#删
db.session.delete(role)
db.session.commit
#改
role.name = 'chengxuyuan'
db.session.commit

简单查询

常用的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对象,它包含指定范围内的结果

查询所有用户数据

User.query.all()

查询有多少个用户

User.query.count()

查询第一个用户

User.query.first()

查询id为4的用户
1.User.query.get(4)
2.User.query.filter_by(id=4)
3.User.query.filter(User.id == 4)
filter()与filter_by()的区别
filter():对象.属性 == 值
filter_by():属性 = 值
filter()功能更加强大,可以实现更多的一些查询,支持比较运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值