首页 > 编程 > Python > 正文

把MySQL表结构映射为Python中的对象的教程

2019-11-25 17:49:55
字体:
来源:转载
供稿:网友

ORM

mysql的表结构是二维表,用python的数据结构表示出来就是一个列表,每一个记录是一个tuple。如下所示:

[('1', ''huangyi),('2', ''letian),('3', 'xiaosi')]

这一行并不便于看出表的结构,可以把它换成对象的形式。

class User(object):  def __init__(self, id, name):    self.id = id    self.name = name

得到:
 

[ User('1', 'huangyi'), User('2', 'letian'), User('3', 'xiaosi')]

这就是ORM(Object-relational Mapping),把关系数据库的表结构映射到对象上。我们可以用SQLAlchemy框架来进行映射。
SQLAlchemy
 

#!/usr/bin/env python#-*-coding:utf-8 -*- from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base):  __tablename__ = 'user'  id = Column(String(20), primary_key=True)  name = Column(String(20)) engine = create_engine('mysql+mysqlconnector://root:XXXXX@localhost:3306/TUZHI')DBSession = sessionmaker(bind=engine) session = DBSession()new_user = User(id='4', name='Huangyi')session.add(new_user)session.commit()#session.close() ##进行查询#session = DBSession()user = session.query(User).filter(User.id=='4').one()print 'type:', type(user)print 'name:', user.namesession.close()

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表