sqlalchemy字段与mysql数据库字段对应问题

字段类型是在定义模型时, 对每个 Column 的类型约定. 不同类型的字段类型在输入输出上, 及支持的操作方面, 有所区别.

这里只介绍 sqlalchemy.types.* 中的类型, SQL 标准类型方面, 是写什么最后生成的 DDL 语句就是什么, 比如 BIGINTBLOG 这些, 但是这些类型并不一定在所有数据库中都有支持. 除此而外, SQLAlchemy 也支持一些特定数据库的特定类型, 这些需要从具体的 dialects 实现里导入.

Integer/BigInteger/SmallInteger
整形.
Boolean
布尔类型. Python 中表现为  True/False , 数据库根据支持情况, 表现为  BOOLEAN 或 SMALLINT . 实例化时可以指定是否创建约束(默认创建).
Date/DateTime/Time  (timezone=False)
日期类型,  Time 和  DateTime 实例化时可以指定是否带时区信息.
Interval
时间偏差类型. 在 Python 中表现为  datetime.timedelta() , 数据库不支持此类型则存为日期.
Enum  (*enums, **kw)
枚举类型, 根据数据库支持情况, SQLAlchemy 会使用原生支持或者使用  VARCHAR 类型附加约束的方式实现. 原生支持中涉及新类型创建, 细节在实例化时控制.
Float
浮点小数.
Numeric  (precision=None, scale=None, decimal_return_scale=None, ...)
定点小数, Python 中表现为  Decimal .
LargeBinary  (length=None)
字节数据. 根据数据库实现, 在实例化时可能需要指定大小.
PickleType
Python 对象的序列化类型.
String  (length=None, collation=None, ...)
字符串类型, Python 中表现为  Unicode , 数据库表现为  VARCHAR , 通常都需要指定长度.
Unicode
类似与字符串类型, 在某些数据库实现下, 会明确表示支持非 ASCII 字符. 同时输入输出也强制是  Unicode 类型.
Text
长文本类型, Python 表现为  Unicode , 数据库表现为  TEXT .
UnicodeText
参考  Unicode .

发布了18 篇原创文章 · 获赞 10 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_34146899/article/details/52722968