声明:工作原因涉及一点
答: object relation mapping 一种实现对象与数据库中的关系表映射的中间件。ORM 框架中最有名的是SQLALCHEMY
Python定义class----class与数据库表产生映射---操作class使得数据库中的表发生变化
关键的步骤:
增加数据库中的表:
具体的步骤:
具体的代码:
Class Company( ):
__tablename__ = “company”
Id = Column(Interger,primary_key = True,autoincrement=True)
Name = Column(string(32),index=True)
完成python中数据类的创建,但是这样不会在数据库中生成一个Company的数据表
因为继承基类的才可以在数据库中创建
故:
声明一个ORM模型的一个基类
From sqlalchemy.ext.declarative import declareative_base ----导入官宣的base
Base = declarative_base()-------实例化一个基类
(备注: ORM模型object的属性=table中创建的字段
object 定义数据表中的操作和属性
ORM模型中的基类是有base定义的,只要继承了base基类,就省去了自己定义的过程)
From sqlalchemy import Interger,String,Column
Class Company(Base ):
__tablename__ = “company”
Id = Column(Interger,primary_key = True,autoincrement=True)
Name = Column(string(32),index=True)
(备注; base中定义只有被column声明名称,ORM才会将其变成表中的字段)
From sqlalchemy import create_engine
Engine = create_engine(“ 被识别的url ”)
Base.metadate.creat_all( engine ) ------将所有继承base的“元数据”/class 创建(creat_all)在(engine)这个数据库引擎中
类似于在mysql以及orecl等其他数据库一样,若是对数据库表的操作通常步骤
对应的具体的sqlalchemy的代码以及操作
1)登录数据库----登录数据库-------导入数据库引擎
From sqlalchemy import creat_engine
Engine=create_engine('oracle://xn_china_wind:[email protected]/orcl')
From sqlalchemy.orm import sessionmake()
Session = sessionmaker(engine)-----在数据库引擎中创建会话窗口
Session_win = Session( )---------------打开session会话窗口
一、
对创建的User类进行操作
user_obj = User(name =”DragonFire”) ------创建sql语句
Session_win.add(user_obj)-------加载SQL语句在会话窗口
二、
创建对象列表
User_obj_list = [User(name =”DragonFire”) , User(name =”Dragon”)]
Session_win.add_all(User_obj_list)-------加载SQL语句在会话窗口
一、
Session_win.commit() -------提交指令
Session_win.close()-----------------关闭会话窗口
二、
Session_win.commit() -------提交指令
Session_win.close()-----------------关闭会话窗口