码迷,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
迷上了代码!