sqlalchemy 的 ORM 与 Core 混合方式使用示例

简介: 知乎: sqlalchemy 的 ORM 与 Core 混合方式操作数据库是一种怎样的体验? 答: 酸!   本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13   基本步骤如下:   1.

知乎: 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()

 

目录
相关文章
|
5月前
|
SQL 关系型数据库 数据库连接
框架分析(10)-SQLAlchemy
框架分析(10)-SQLAlchemy
|
2月前
|
SQL 开发框架 .NET
深入解析Entity Framework Core中的自定义SQL查询与Raw SQL技巧:从基础到高级应用的全面指南,附带示例代码与最佳实践建议
【8月更文挑战第31天】本文详细介绍了如何在 Entity Framework Core (EF Core) 中使用自定义 SQL 查询与 Raw SQL。首先,通过创建基于 EF Core 的项目并配置数据库上下文,定义领域模型。然后,使用 `FromSqlRaw` 和 `FromSqlInterpolated` 方法执行自定义 SQL 查询。此外,还展示了如何使用 Raw SQL 进行数据更新和删除操作。最后,通过结合 LINQ 和 Raw SQL 构建动态 SQL 语句,处理复杂查询场景。本文提供了具体代码示例,帮助读者理解和应用这些技术,提升数据访问层的效率和灵活性。
74 0
|
Web App开发
ORM映射框架总结--Excel 操作
  在很多时候,我们需要将查询的数据做成报表统计,然后生成Excel文档格式的。再此提供了将DataTable 数据导出excel 的方法   代码   1 /**  2  *   3  * 2009-5-2  4  *   5  *   6  * 将DataTable导出为excel文件  7  * */  8 using System;  9 using System.
900 0
|
算法 数据安全/隐私保护
ORM映射框架总结--加密处理
1.MD5 加密处理 代码  1 /** 2  * 日期:2009-3-15 3  * 作者: 4  * 功能:MD5加密及验证 5  * */ 6 using System; 7 using System.
823 0
|
JSON 数据格式
ORM映射框架总结--终极JSON
1. 简单介绍一下JSON   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript的一个子集。
1037 0
|
内存技术
ORM映射框架总结--Flash 处理
代码   1 /**  2  *   3  * 2009-4-17  4  *   5  *   6  * 根据flash读取其宽度和高度  7  * */  8 using System;  9 using System.
787 0
|
移动开发 监控 .NET
ORM映射框架总结--日志处理
  在我们做项目的过程中,日志跟踪异常是非常必要的,当程序发布到服务器上时,如果出现异常直接抛出给用户这是非常不友好的。对于不懂程序的用户来说,这回让人感觉莫名其妙,对于那些程序高手,可能就是攻破这个网站的关键。
731 0
|
SQL 存储 .NET
ORM映射框架总结--数据库操作库(精修版)
1.       ORM数据库操作原理 前面已经介绍过了个人ORM映射框架中的三个核心库: 实体—数据库 映射特性关系: http://www.cnblogs.com/qingyuan/archive/2010/04/02/1702998.
1390 0