本文共 2002 字,大约阅读时间需要 6 分钟。
知乎: sqlalchemy 的 ORM 与 Core 混合方式操作数据库是一种怎样的体验?
答: 酸!
本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13
基本步骤如下:
from sqlalchemy import create_engineengine = create_engine('sqlite:///:memory:',echo = True)
from sqlalchemy.orm import Session session = 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()
# 绑定数据库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/