Flask从入门到放弃五:SQLAlchemy介绍与快速使用、创建表插入数据、Scoped_session线程安全、基本增删查改、表模型、Flask-SQLAlchemy、Migrate的使用
2024.01.17 20:30浏览量:71简介:本文将介绍SQLAlchemy,一个强大的Python SQL工具包和对象关系映射器,以及如何使用它来在Flask应用中进行数据库操作。包括创建表、插入数据、进行基本的增删查改操作,以及如何使用Flask-SQLAlchemy和Migrate进行数据库迁移。
在Flask应用的开发中,数据库是一个核心组件。SQLAlchemy是一个功能强大的Python SQL工具包和对象关系映射器(ORM),可以帮助开发者更轻松地处理数据库操作。下面我们将详细介绍SQLAlchemy的基本使用,以及如何在Flask应用中集成它。
一、SQLAlchemy介绍与快速使用
SQLAlchemy以其强大的功能和灵活的API而闻名,它支持多种数据库系统,包括MySQL、PostgreSQL、SQLite等。通过SQLAlchemy,你可以使用Python类来定义数据库结构,并使用Python代码来执行数据库操作。
下面是一个简单的示例,展示如何使用SQLAlchemy创建一个数据库连接,并执行一个简单的查询:
from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmaker# 创建数据库引擎engine = create_engine('sqlite:///example.db')# 定义表模型Base = declarative_base()class User(Base):__tablename__ = 'users'id = Column(Integer, primary_key=True)name = Column(String)age = Column(Integer)# 创建表Base.metadata.create_all(engine)# 创建会话类Session = sessionmaker(bind=engine)# 创建会话对象session = Session()# 添加数据session.add_all([User(name='Alice', age=25), User(name='Bob', age=30)])# 提交事务,将数据保存到数据库中session.commit()# 查询数据users = session.query(User).all()for user in users:print(user.name, user.age)session.close()
在这个示例中,我们首先创建了一个SQLite数据库引擎。然后,我们定义了一个User表模型,包含了id、name和age三个字段。接着,我们使用create_all()方法创建了表。接下来,我们创建了一个会话类Session和一个会话对象session。通过调用session.add_all()方法,我们将两个用户添加到会话中,然后调用session.commit()方法将数据保存到数据库中。最后,我们使用session.query()方法查询所有用户数据,并打印出每个用户的姓名和年龄。
二、创建表插入数据
在SQLAlchemy中,你可以使用Python类来定义数据库表结构。在定义类时,你可以指定每个字段的数据类型、是否为主键等属性。一旦你定义了表结构,就可以使用SQLAlchemy提供的API来创建表并将数据插入到表中。
下面是一个示例,展示如何创建一个名为users的表,并插入一些数据:
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
创建数据库引擎
engine = create_engine(‘sqlite:///example.db’)
定义表模型
Base = declarativebase()
class User(Base):
_tablename = ‘users’
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
创建表
User.table.create(engine)
创建会话类
Session = sessionmaker(bind=engine)
创建会话对象
session = Session()
添加数据
session.add_all([User(name=’Alice’, age=25

发表评论
登录后可评论,请前往 登录 或 注册