zoukankan      html  css  js  c++  java
  • sqlalchemy 的 ORM 与 Core 混合方式使用示例

    知乎: sqlalchemy 的 ORM 与 Core 混合方式操作数据库是一种怎样的体验?

    答: 酸!

    本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13

    基本步骤如下:

    1. 绑定数据库

    from sqlalchemy import create_engine
    
    engine = create_engine('sqlite:///:memory:',echo = True)

    2. 建立会话

    from sqlalchemy.orm import Session
    session
    = Session(engine)

    3. 元数据

    from sqlalchemy import MetaData
    
    metadata = MetaData(engine)

    4. 定义表

    from sqlalchemy import Table, Column, Integer, String, ForeignKey
    
    users_table = Table('users', metadata,
      Column('id', Integer, primary_key = True),
      Column('name', String),
      Column('fullname', String),
      Column('password', String)
    )

    5. 创建表

    # metadata.create_all() # 方式一
    users_table.create() # 方式二

    6. 定义类

    class User(object):
        def __init__(self,name,fullname,password):
            self.name = name
            self.fullname = fullname
            self.password = password
    
        def __repr__(self):
            return "<User('%s','%s','%s')>" % (self.name, self.fullname, self.password)

    7. 映射类、表

    from sqlalchemy.orm import mapper
    
    mapper(User, users_table)

    8. 然后,就可以使用会话对数据库进行操作

    session.add(User('ed','Ed Jones','edspassword'))
    session.commit()

    9. 完整代码

    # 绑定数据库
    from sqlalchemy import create_engine
    engine = create_engine('sqlite:///:memory:',echo = True)
    
    
    # 建立会话
    from sqlalchemy.orm import Session
    session = Session(engine)
    
    
    # 元数据
    from sqlalchemy import MetaData
    metadata = MetaData(engine)
    
    
    # 定义表
    from sqlalchemy import Table, Column, Integer, String, ForeignKey
    users_table = Table('users', metadata,
      Column('id', Integer, primary_key = True),
      Column('name', String),
      Column('fullname', String),
      Column('password', String)
    )
    
    
    # 创建表
    # metadata.create_all() # 方式一
    users_table.create() # 方式二
    
    
    # 定义类
    class User(object):
        def __init__(self,name,fullname,password):
            self.name = name
            self.fullname = fullname
            self.password = password
    
        def __repr__(self):
            return "<User('%s','%s','%s')>" % (self.name, self.fullname, self.password)
    
            
    # 映射类、表
    from sqlalchemy.orm import mapper
    mapper(User, users_table)
    
    
    # 然后,就可以使用会话对数据库进行操作
    session.add(User('ed','Ed Jones','edspassword'))
    session.commit()
  • 相关阅读:
    CSS+HTML+flexible.js+rem实现屏幕缩放适配概念原理解释
    《写给程序员的Python教程》阅读随笔---python禅学(Zen_of_python)
    Python使用sql语句对mysql数据库多条件模糊查询
    request.json和request.form
    Python的flask接收前台的ajax的post数据和get数据
    Echarts世界地图和网页表格数据交互联动
    团队项目简介
    ajax和flask路由传json格式数据出现undefined和object错误
    世界疫情div界面搭建初步
    解决element-ui DateTimePicker 默认日期格式化问题
  • 原文地址:https://www.cnblogs.com/hhh5460/p/5514459.html
Copyright © 2011-2022 走看看