Login
网站首页 > 文章中心 > 其它

python之sqlalchemy创建表的实例详解

作者:小编 更新时间:2023-09-21 09:22:58 浏览量:268人看过

首先,需要明确的是SQLAlchemy是一个Python编写的关系型数据库框架,可以方便地对数据库进行操作.在这样一个框架中创建表格非常容易,下面我将详细介绍如何使用SQLAlchemy创建一个表格.

环境搭建

在开始创建表格之前,你需要先安装SQLAlchemy模块.可以在命令行中输入以下命令安装:


pip install sqlalchemy


依赖库安装后,你需要先连接到一个目标数据库.这里假设你正在使用的是MySQL数据库,并且在本地安装了XAMPP来提供MySQL服务.连接到MySQL数据库需要指定数据库类型、用户名、密码、地址、端口和数据库名称等参数.代码如下:


from sqlalchemy import create_engine

servertype = "mysql"
username = "root"
password = ""
host = "localhost"
port = 3306
dbname = "test"

# 拼装连接字符串
connstr = f"{servertype}://{username}:{password}@{host}:{port}/{dbname}"
engine = create_engine(connstr, echo=True)


创建表格

在连接到目标数据库后,你可以使用SQLAlchemy创建表格了.此时此刻呢大家和小编一起研究一下如何创建一个简单的表格.


from sqlalchemy import Table, Column, Integer, String, MetaData

metadata = MetaData()

# 定义表格
users = Table("users", metadata,
Column("id", Integer, primary_key=True),
Column("name", String),
Column("age", Integer)
)

# 创建表格
metadata.create_all(engine)


上述代码定义了一张名为 users 的数据表,其包含三个字段:id、name、age.其中,id 字段作为主键,且为自增长的整数类型.我们调用了 metadata.create_all() 方法,它根据上面定义的表格信息自动创建了数据表.

如果你想要了解更多的关于SQLAlchemy创建表格的内容,可以从以下两个示例中获取帮助.

示例一:创建有默认值的字段

假设我们需要创建一张名为 user_info 的数据表,包含四个字段:

id:自动递增的主键ID

age:用户年龄,整数类型,有默认值 0

创建表格的代码如下:


from sqlalchemy import Table, Column, Integer, String, MetaData
from sqlalchemy.sql.expression import text

metadata = MetaData()

# 定义表格
user_info = Table("user_info", metadata,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("name", String(length=200)),
Column("age", Integer, server_default=text('0')),
Column("city", String(length=200), default='无')
)

# 创建表格
metadata.create_all(engine)


在上面的代码中,我们可以看到,我们通过 Column 类的参数 server_default 和 default 设置了字段 age 和 city 的默认值.

示例二:定义外键约束

再假设我们需要创建另一张名为 user_address 的数据表,这张表包含三个字段:

id:自动递增的主键 ID

user_id:用户 ID,外键约束为 user_info 表的 id 字段

创建 user_address 表格的代码如下:


from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey

metadata = MetaData()

# 定义表格
user_address = Table("user_address", metadata,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("user_id", Integer, ForeignKey("user_info.id")),
Column("address", String(length=500))
)

# 创建表格
metadata.create_all(engine)


在上面的代码中,我们使用 ForeignKey 类来定义 user_id 字段与 user_info 表的 id 字段之间的外键约束.特别地,考虑到表 user_info 尚未创建,它被放到了 ForeignKey 类的字符串参数中.

总结

如上所述,使用 SQLalchemy 可以非常方便地创建数据库表格,同时也能够更加灵活地定义表格的属性(包括默认值以及约束等),这样在进行数据库操作时也会变得更加方便.

以上就是土嘎嘎小编为大家整理的python之sqlalchemy创建表的实例详解相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章