zoukankan      html  css  js  c++  java
  • 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就是把数据库表的行与相应的对象建立关联,互相转换。
  • 相关阅读:
    Android开发 ViewConfiguration View的配置信息类
    Android 开发 倒计时功能 转载
    Android 开发 关于7.0 FileUriExposedException异常 详解
    Android 开发 实现文本搜索功能
    Android 开发 Activity里获取View的宽度和高度 转载
    Android 开发 存储目录的详解
    Android 开发 Fresco框架点击小图显示全屏大图实现 ZoomableDraweeView
    Android 开发 将window变暗
    Android 开发 DisplayMetrics获取Android设备的屏幕高宽与其他信息
    Android 开发 DP、PX、SP转换详解
  • 原文地址:https://www.cnblogs.com/DSKer/p/10456019.html
Copyright © 2011-2022 走看看