码迷,mamicode.com
首页 > 数据库 > 详细

python-SQLAlchemy详解

时间:2017-07-11 19:33:51      阅读:550      评论:0      收藏:0      [点我收藏+]

标签:primary   pre   on()   连接   prim   nmake   for   creat   bind   


1.SQLAlchemy的作用
ORM对象关系映射技术

2.SQLAlchemy安装

pip install SQLAlchemy

3.使用示例

# 导入:
from sqlalchemy import Column, String, create_engine,ForeignKey
from sqlalchemy.orm import sessionmaker,relationship
from sqlalchemy.ext.declarative import declarative_base
# 创建对象的基类:
Base = declarative_base()
# 初始化数据库连接(postgresql默认使用psycopg2驱动,可省略):
engine = create_engine(‘postgresql+psycopg2://username:password@host:post/dbname‘)
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)
# 定义User对象:
class User(Base):
    # 表的名字:
    __tablename__ = ‘test2‘

    # 表的结构:
    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    # 一对多:
    books=relationship(‘Book‘)
class Book(Base):
    # 表的名字:
    __tablename__ = ‘test3‘

    # 表的结构:
    id = Column(String(20), primary_key=True)
    name = Column(String(20))
    # “多”的一方的book表是通过外键关联到user表的:
    user_id=Column(String(20),ForeignKey(‘test2.id‘))
    
session=DBSession()
new_user=User(id=‘5‘,name=‘Bob‘)
session.add(new_user)
new_book=Book(id=‘1‘,name=‘linux‘,user_id=‘5‘)
session.add(new_book)
new_book=Book(id=‘2‘,name=‘python‘,user_id=‘5‘)
session.add(new_book)
session.commit()
session.close()

session=DBSession()
user=session.query(User).filter(User.id==‘5‘).one()
print ‘type:‘,type(user)
print ‘name:‘,user.name
print ‘books:‘,user.books
session.close()

运行结果:

技术分享

python-SQLAlchemy详解

标签:primary   pre   on()   连接   prim   nmake   for   creat   bind   

原文地址:http://www.cnblogs.com/shijingjing07/p/7151965.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!