【SQLAlchemy】第3节:常用的字段及其约束

【SQLAlchemy】第3节:常用的字段及其约束

1 导包

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,SmallInteger,BigInteger,Float,Numeric,String,Text,Date,DateTime,Time,TIMESTAMP,Boolean,Unicode,UnicodeText,LargeBinary

2 常用的字段类型

关键字 对应SQL中的类型
Integer int
SmallInteger smallint
BigInteger bigint
Float(m,d) float(m,d)
DECIMAL(m,d)或Numeric(m,d) decimal(m,d)
String(n) varchar(n)
Text text
Datetime datetime
Date date
Time time
TIMESTAMP timestamp
Boolean boolean
Unicode 可变长度的Unicode字符串
UnicodeText 可变长度字符串,用于存储较长的字符串
LargeBinary 二进制文件

3 常用约束

关键字 说明
primary_key 主键
autoincrement 自增
nullable 是否可以为Null,默认nullable=True
unique 唯一,默认unique=False
default 默认值,支持字段引用
index 是否建立索引

4 例子

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,SmallInteger,DateTime,Date,Numeric
import datetime

# 定义连接引擎
engine = create_engine(
    'mysql+pymysql://root:12345@localhost:3306/db_sqlalchemy_notebook',
    echo=False
)

# 创建模型基类
Base = declarative_base()


class User(Base):

    __tablename__ = 'user'


    id = Column(Integer,primary_key=True)

    account = Column(String(16),nullable=False)     # 登录账号
    name = Column(String(100),nullable=False,default=account) # 用户昵称
    password = Column(String(32),nullable=False)    # md5加密后的密码
    money = Column(Numeric(10,2),default=0,nullable=False)  # 余额,默认0
    imgpath = Column(String(100))                   # 用户头像,允许为空
    gender = Column(SmallInteger,default=0,nullable=False)  # 性别,默认0:男,1:女
    age = Column(SmallInteger)                      # 年龄,允许为空
    email = Column(String(100))                     # 邮箱,允许为空
    qq = Column(String(16))                         # qq,允许为空
    tel = Column(String(11))                        # 电话号,允许为空
    createDatetime = Column(DateTime,default=datetime.datetime.now(),nullable=False)
    updateDatetime = Column(DateTime,default=datetime.datetime.now(),nullable=False)

猜你喜欢

转载自blog.csdn.net/kzl_knight/article/details/103097619
今日推荐