Python ORM SQLAlchemy
SQLalchemy 基本使用
- 安装 SQLAlchemy
- pip install SQLalchemy
使用实例
- 
model.py 
# coding: utf-8
from sqlalchemy import Column, DECIMAL, Enum, String, text
from sqlalchemy.dialects.mysql import BIT, INTEGER, TINYINT
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Class(Base):
    __tablename__ = 'classes'
    id = Column(INTEGER(10), primary_key=True)
    name = Column(String(30), nullable=False)
class Student(Base):
    __tablename__ = 'students'
    id = Column(INTEGER(10), primary_key=True)
    name = Column(String(20), server_default=text("''"))
    age = Column(TINYINT(3), server_default=text("'0'"))
    height = Column(DECIMAL(5, 2))
    gender = Column(Enum('男', '女', '中性', '保密'), server_default=text("'保密'"))
    cls_id = Column(INTEGER(10), server_default=text("'0'"))
    is_delete = Column(BIT(1))
- Demo.py
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from models import Student
# mysql 配置
DB_CONFIG = {
    'host': '127.0.0.1',    # localhost
    'port': 3306,
    'user': 'root',
    'passwd': 'psadasd123213',
    'db': 'test'
}
# 创建一个ORM 引擎, echo=True 表示是否打印SQL
engine = create_engine('mysql+pymysql://{user}:{passwd}@{host}:{port}/{db}'.format(**DB_CONFIG), echo=False)
# 创建 DBSession 类型:
Session = sessionmaker(bind=engine)
# 生成一个会话实例
session = Session()
# 查询数据
data = session.query(Student).filter_by().limit(20).offset(0).all()
# 逐行打印数据
for row in data:
    print(row.name)
- 输出结果
小明
小月月
彭于晏
刘德华
黄蓉
凤姐
王祖贤
周杰伦
程坤
刘亦菲
金星
静香
郭靖
周杰
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号