欢迎访问宙启技术站
智能推送

Python中使用SQLAlchemy.types模块定义数据库字段类型

发布时间:2023-12-23 09:13:05

在Python中,SQLAlchemy是一个流行的对象关系映射(ORM)工具,它允许我们使用Python代码来操作关系型数据库。SQLAlchemy模块包含一个types模块,该模块定义了一些常见的数据库字段类型。下面是一些常用的数据库字段类型以及它们在SQLAlchemy中的使用示例:

1. String:表示字符串字段。可以指定最大长度。

from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    name = Column(String(50))

2. Integer:表示整数字段。

from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    age = Column(Integer)

3. Float:表示浮点数字段。

from sqlalchemy import Column, Float
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = 'products'
    price = Column(Float)

4. Boolean:表示布尔字段。

from sqlalchemy import Column, Boolean
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    is_active = Column(Boolean)

5. DateTime:表示日期和时间字段。

from sqlalchemy import Column, DateTime
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    created_at = Column(DateTime)

6. Text:表示长文本字段。

from sqlalchemy import Column, Text
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class BlogPost(Base):
    __tablename__ = 'blog_posts'
    content = Column(Text)

7. Enum:表示枚举字段,用于存储一组预定义的值。

from sqlalchemy import Column, Enum
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    role = Column(Enum('admin', 'user'))

8. JSON:表示JSON字段,用于存储JSON格式的数据。

from sqlalchemy import Column, JSON
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    data = Column(JSON)

这些只是SQLAlchemy中可用的一些字段类型的示例。根据不同的数据库引擎,还有其他一些可用的字段类型。