• sqlalchemy 入门


    ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上。

    在Python中,最有名的ORM框架是SQLAlchemy。

    # 导入:
    from sqlalchemy import Column, String, create_engine
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy.ext.declarative import declarative_base
    # 创建对象的基类:
    Base = declarative_base()
    # 定义某个表所对应的对象:

    class table_name(Base):

       # 表的名字:
    __tablename__ = 'table_name'
        # 表的结构:
        id = Column(String(20), primary_key=True)
        name = Column(String(20))

    # 初始化数据库连接:
    engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test')
    # 创建DBSession类型:
    DBSession = sessionmaker(bind=engine)


    以上代码完成SQLAlchemy的初始化和具体每个表的class定义。
    create_engine()用来初始化数据库连接。
    SQLAlchemy用一个字符串表示连接信息:'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'
    使用时根据需要替换掉用户名,口令等信息。


    由于有了ORM,我们向数据库表中添加一行记录,可以视为添加一个table_name对象
    # 创建session对象:
    session = DBSession()
    # 创建新User对象:
    new_user = User(id='5', name='Bob')
    # 添加到session:
    session.add(new_user)
    # 提交即保存到数据库:
    session.commit()
    # 关闭session:
    session.close()


    关键是获取session,然后把对象添加到session,最后提交并关闭。Session对象可视为当前数据库连接。
    有了ORM,查询出来的可以不再是tuple,而是表所对应的对象。SQLAlchemy提供的查询接口如下:
    # 创建Session:
    session = DBSession()
    # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:
    user = session.query(table_name).filter(User.id=='5').one()
    # 打印类型和对象的name属性:
    print 'type:', type(user)
    print 'name:', user.name
    # 关闭Session:
    session.close()

    可见,ORM就是把数据库表的行与相应的对象建立关联,互相转换。
  • 相关阅读:
    iOS开发多线程篇—GCD的常见用法
    iOS开发多线程篇—GCD的基本使用
    iOS开发多线程篇—线程的状态
    iOS开发多线程篇—GCD介绍
    iOS开发多线程篇—线程间的通信
    iOS开发多线程篇—线程安全
    iOS开发多线程篇—创建线程
    iOS开发多线程篇—多线程简单介绍
    iOS开发UI篇—Quartz2D使用(绘制基本图形)
    WordPress基础:小工具的使用
  • 原文地址:https://www.cnblogs.com/DSKer/p/10456019.html
Copyright © 2020-2023  润新知