python学习笔记(十六)

所谓的ORM就是Object-Relational Mapping,把关系数据库的表结果映射到对象上。

1. 安装SQLAlchemy:

easy_install sqlalchemy

2. 导入SQLAlchemy,并初始化DBSession:

# 导入:from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base# 创建对象的基类:Base = declarative_base()# 定义User对象:class User(Base):# 表的名字:__tablename__ = 'user'# 表的结构:id = Column(String(20), primary_key=True)name = Column(String(20))# 初始化数据库连接:# '数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'engine = create_engine('mysql+mysqlconnector://root:root@localhost:3306/test')# 创建DBSession类型:DBSession = sessionmaker(bind=engine)3. 往数据库表中添加一行记录:# 创建session对象:session = DBSession()# 创建新User对象:new_user = User(id='5', name='Bob')# 添加到session:session.add(new_user)# 提交即保存到数据库:session.commit()# 关闭session:session.close()4. 从数据库中查询数据# 创建Session:session = DBSession()# 创建Query查询,filter是where条件,,最后调用one()返回唯一行,如果调用all()则返回所有行:user = session.query(User).filter(User.id=='5').one()# 打印类型和对象的name属性:print 'type:', type(user)print 'name:', user.name# 关闭Session:session.close()5. 创建一个一对多的关系:

一个人有多本书:当我们查询一个User对象时,该对象的books属性将返回一个包含若干个Book对象的list

class User(Base):__tablename__ = 'user'id = Column(String(20), primary_key=True)name = Column(String(20))# 一对多:books = relationship('Book')class Book(Base):__tablename__ = 'book'id = Column(String(20), primary_key=True)name = Column(String(20))# “多”的一方的book表是通过外键关联到user表的:user_id = Column(String(20), ForeignKey('user.id'))

孤单寂寞与被遗弃感是最可怕的贫穷

python学习笔记(十六)

相关文章:

你感兴趣的文章:

标签云: