首先,需要明确的是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
- name:用户名,长度为200个字符
- age:用户年龄,整数类型,有默认值 0
- city:所在城市,长度为200个字符,如果未填写则默认值为'无'
创建表格的代码如下:
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 字段
- address:家庭住址,字符串类型,长度为 500
创建 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创建表的实例详解 - Python技术站