博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlalchemy 的 ORM 与 Core 混合方式使用示例
阅读量:7021 次
发布时间:2019-06-28

本文共 2002 字,大约阅读时间需要 6 分钟。

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

答: 酸!

 

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

 

基本步骤如下:

 

1. 绑定数据库

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

 

2. 建立会话

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

 

3. 元数据

from sqlalchemy import MetaDatametadata = MetaData(engine)

 

4. 定义表

from sqlalchemy import Table, Column, Integer, String, ForeignKeyusers_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 "
" % (self.name, self.fullname, self.password)

 

7. 映射类、表

from sqlalchemy.orm import mappermapper(User, users_table)

 

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

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

 

9. 完整代码

# 绑定数据库from sqlalchemy import create_engineengine = create_engine('sqlite:///:memory:',echo = True)# 建立会话from sqlalchemy.orm import Sessionsession = Session(engine)# 元数据from sqlalchemy import MetaDatametadata = MetaData(engine)# 定义表from sqlalchemy import Table, Column, Integer, String, ForeignKeyusers_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 "
" % (self.name, self.fullname, self.password) # 映射类、表from sqlalchemy.orm import mappermapper(User, users_table)# 然后,就可以使用会话对数据库进行操作session.add(User('ed','Ed Jones','edspassword'))session.commit()

 

转载地址:http://jycxl.baihongyu.com/

你可能感兴趣的文章
数据库数字参考表的妙用
查看>>
检查多个IP是否ping通的两种脚本
查看>>
numpy.asarray与theano.shared比较
查看>>
jQuery 实现 Checkbox 的全选、全不选和反向选择的功能
查看>>
Java环境搭建--JDK、tomcat
查看>>
CopyOnWriteArrayList详解
查看>>
静态多态和动态多态
查看>>
接口测试工具-poster
查看>>
java基础第十三天_IO
查看>>
apache快速开通虚拟主机shell
查看>>
【面试题】C语言:模拟实现strncpy,尝试比较strncpy与strcpy区别。
查看>>
16.1反射
查看>>
curl 的用法
查看>>
mysql 的主从复制原理
查看>>
Laravel的容器Vagrant+Homestead+Composer+Yaml开发环境搭建正确步骤
查看>>
centos6.8基础调优详解
查看>>
maven工程 使用hessian遇到的问题
查看>>
【安全牛学习笔记】Penetration testing presentation
查看>>
Windows mysql备份
查看>>
RedisTemplate读取slowlog
查看>>