当前位置 博文首页 > 主打Python的博客:python sqlalchemy编程基础

    主打Python的博客:python sqlalchemy编程基础

    作者:[db:作者] 时间:2021-07-02 21:38

    ‘’’
    概念(大家听不懂很正常):

        SQLalchemy是Python的一个框架,是Python用来操作数据库的一种框架,给开发者操作SQL提供的强大功能和灵活性
    
        ORM: Object Relational Mapper --> 关系对象映射, Django里会详细讲。
    
        declarative_base类维持了一个从类到表的关系,通常一个应用使用一个base实例,所有实体类都应该继承此类对象
    
        数据库的链接格式:'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名?charset=utf8'
    
        代码的运行的前提: 必须提前进入mysql + 必须提前创建好数据库(数据表用代码生成,可以不用创建数据表)
    
        Column:列的意思
    

    ‘’’

    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, String, Integer, Enum, ForeignKey, Date, DateTime

    创建对象的基类

    Base = declarative_base()

    链接数据库

    engine = create_engine(
    “mysql+pymysql://mysql:qwe123@localhost/Python_12?charset=utf8”, echo=True, pool_size=5, max_overflow=5
    )

    部门表

    class Depart(Base):
    tablename = “depart”

    id = Column(Integer, primary_key=True, autoincrement=True, doc='编号')
    name = Column(String(20), unique=True, doc='名称')
    
    def __init__(self, id, name):
        self.id = id
        self.name = name
    

    员工表

    class User(Base):
    tablename = ‘user’

    id = Column(Integer, primary_key=True, autoincrement=True, doc='编号')
    name = Column(String(20), doc='名称')
    age = Column(Integer, doc='年龄')
    gender = Column(Enum('男', '女'), default='男', doc='性别')
    phone = Column(String(11), doc='电话')
    
    depart_id = Column(Integer, ForeignKey('depart.id'), doc='绑定部门id')
    
    def __init__(self, id, name, age, gender, phone, depart_id):
        self.id = id
        self.name = name
        self.age = age
        self.gender = gender
        self.phone = phone
        self. depart_id = depart_id
    

    if name == ‘main’:
    Base.metadata.create_all(engine)

    cs