增add

  • # 创建表1
  • # 注:高级封装
  • import sqlalchemy
    
    # 调用链接数据库
    from sqlalchemy import create_engine
    # 调用基类Base
    from sqlalchemy.ext.declarative import declarative_base
    # 调用Column创建字段 加类型
    from sqlalchemy import Column, Integer, String
    
    # create_engine 链接数据库 mysql+pymysql:链接对象//用户名:密码@主机/DB
    # encoding='utf-8' 链接字符集 ,echo=True 把所有信息打印出来
    engine = create_engine("mysql+pymysql://root:123456@192.168.1.154/xiang",
                                        encoding='utf-8', echo=True)
    
    # 生成orm基类
    Base = declarative_base()
    
    # 继承Base
    class User(Base):
        # __tablename__ 表名
        __tablename__ = 'user'
    
        # Column字段(数据类型 Integer整数,primary_key=True主键)
        id = Column(Integer, primary_key=True)
    
        # Column字段(String(32)字符长度)
        name = Column(String(32))
    
        # Column字段(String(64)字符长度)
        password = Column(String(64))
    
    # 创建表结构
    # 调用Baew基类方法metadata.create_all(链接数据库)
    Base.metadata.create_all(engine)
    View Code

  •  # 创建表2
  • # 注:第一种方式创建的表就是基于第2种方式的再封装。
  • from sqlalchemy import Table, MetaData, Column, Integer, String, ForeignKey
    from sqlalchemy.orm import mapper
    
    metadata = MetaData()
    
    # 创建表结构,调用metadata
    user = Table('user', metadata,
                Column('id', Integer, primary_key=True),
                Column('name', String(50)),
                Column('fullname', String(50)),
                Column('password', String(12))
            )
    
    # 创建类
    class User(object):
        def __init__(self, name, fullname, password):
            self.name = name
            self.fullname = fullname
            self.password = password
    
    # 将表元数据与表构造分开创建,然 后通过mapper()函数与用户类关联。
    mapper(User, user)
    View Code

相关文章: