python学习之路
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Indexfrom sqlalchemy.orm import sessionmaker,> from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://tuocigaoshou:Eb^BEF38E9FBC36CA775@111.204.117.99:3306/test", max_overflow=5)
Base = declarative_base()
# 创建单表
class Users(Base):# 必须继承Base类
__tablename__ = 'users' # 表名
# 创建三列数据
id = Column(Integer, primary_key=True) # primary_key 主键,自增ID
name = Column(String(32))
extra = Column(String(16))
# 联合索引
__table_args__ = (
UniqueConstraint('id', 'name', name='uix_id_name'),
Index('ix_id_name', 'name', 'extra'),
)
# 一对多
class Favor(Base):
__tablename__ = 'favor'
nid = Column(Integer, primary_key=True) # primary_key 主键,自增ID
caption = Column(String(50), default='red', unique=True) # unique唯一约束
class Person(Base):
__tablename__ = 'person'
nid = Column(Integer, primary_key=True) # primary_key 主键,自增ID
name = Column(String(32), index=True, nullable=True)
favor_id = Column(Integer, ForeignKey("favor.nid")) # 外键
# 多对多
class Group(Base):
__tablename__ = 'group'
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True, nullable=False)
class Server(Base):
__tablename__ = 'server'
id = Column(Integer, primary_key=True, autoincrement=True)
hostname = Column(String(64), unique=True, nullable=False)
port = Column(Integer, default=22)
class ServerToGroup(Base): # 通过第三张表创建上两张表多对多的关系
__tablename__ = 'servertogroup'
nid = Column(Integer, primary_key=True, autoincrement=True)
server_id = Column(Integer, ForeignKey('server.id'))
group_id = Column(Integer, ForeignKey('group.id'))
# Base.metadata.create_all(engine) # 创建表,会执行Base类的所有子类创建所有表
# Base.metadata.drop_all(engine) # 删除表,会执行Base类的所有子类删除所有表
页:
[1]