吐鲁番做网站,公司网站运营包括哪些方面,wordpress翻译公司,结构设计师之家官网https://www.jianshu.com/p/6ae0d30a5539 前言#xff1a;
Flask-SQLAlchemy是一个Flask扩展#xff0c;简化了在Flask程序中使用SQLAlchemy的操作。SQLAlchemy是一个很强大的关系型数据库框架#xff0c;支持多种数据库后台。SQLAlchemy提供了高层ORM#xff0c;也提供了…https://www.jianshu.com/p/6ae0d30a5539 前言
Flask-SQLAlchemy是一个Flask扩展简化了在Flask程序中使用SQLAlchemy的操作。SQLAlchemy是一个很强大的关系型数据库框架支持多种数据库后台。SQLAlchemy提供了高层ORM也提供了使用数据库原生SQL的低层功能。
学习了Flask-SQLAlchemy下MySQL的配置和增删改查供初学者作为参考。(python3flask) 一、pip安装扩展库
pip3 install flask-sqlalchemy
pip3 install flask-mysqldb 二、配置并初始化数据库
SQLALCHEMY_DATABASE_URI 配置使用的数据库URL而配置MySQL的URL格式为:
mysql://username:passwordhostname/database
SQLALCHEMY_TRACK_MODIFICATIONS 设置成True(默认情况)Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。 三、创建数据库 四、定义模型 1、最常使用的SQLAlchemy列选项
primary_key | 如果设为True这列就是表的主键
unique | 如果设为True这列不允许出现重复的值
index | 如果设为True为这列创建索引提升查询效率
nullable | 如果设为True这列允许使用空值False则不允许使用空值
default | 为这列定义默认值
2、一对多关系
添加到Variable模型中的env_id列被定义为外键就是这个外键建立起了关系。
传给db.ForeignKey()的参数environments.id表明这列的值是environments.id表中行的id值。
3、关系的面向对象视角
添加到Environments模型中的variable属性代表这个关系的面向对象视角。对于一个Environments类的实例其variable属性将返回与角色相关联的用户组成的列表。
db.relationship()的第一个参数表明这个关系的另一端是哪个模型。
db.relationship()的backref参数向Environments模型中添加一个variable属性从而定义反向关系。
db.relationship()的lazydynamic参数表明不加载记录但提供加载记录的查询。 五、数据库操作
1、创建表 db.create_all()
2、删除表 db.drop_all()
3、插入行
#将variable添加到会话中
db.session.add(variable)
#commit()方法提交会话
db.session.commit()
4、 查询数据
1all(查询全部数据)
Environments.query.all()
2filter_by查询精确查询
Environments.query.filter_by(idid).first()
3join(联表一对多查询)
Variable.query.filter_by(env_idenv_id,idid).join(Environments,Variable.env_id Environments.id).first_or_404()
4count(返回查询结果的数量)
Environments.query.filter_by(idid).count()
5、删除数据
db.session.delete(variablelists)
db.session.commit()
6、删除多条数据
variablelists Variable.query.filter_by(env_idenv_id).all()
for var in variablelists: db.session.delete(var)
db.session.commit() 以上希望对你有所帮助 作者小喜_ww 链接https://www.jianshu.com/p/6ae0d30a5539 来源简书 简书著作权归作者所有任何形式的转载都请联系作者获得授权并注明出处。