ORM 框架中SQLALCHEMY一点点个人总结

 声明:工作原因涉及一点

  1. What is ORM

答: object relation mapping 一种实现对象与数据库中的关系表映射的中间件。ORM 框架中最有名的是SQLALCHEMY

 

  1. 具体使用ORM的流程

Python定义class----class与数据库表产生映射---操作class使得数据库中的表发生变化

 

关键的步骤:

  1. 确认数据库是否打开
  2. Sqlalchemy是否安装以及导入
  1. 对数据库进行的增删改查

增加数据库中的表:

具体的步骤:

  1. 创建一个类,类名就是python中类名,类名中声明的表名才是数据库中会生成的表的名称(通常两者是对应的,不然在操作的时候回很容易混乱)

具体的代码:

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才会将其变成表中的字段)

 

  1. 数据引擎----链接数据引擎

From sqlalchemy import create_engine

Engine = create_engine(“      被识别的url           ”)

 

  1. 将继承base的class(自己创建数据库中还没有的表)序列换成数据表

Base.metadate.creat_all( engine ) ------将所有继承base的“元数据”/class 创建(creat_all)在(engine)这个数据库引擎中

  1. 在数据引擎中创建了各种表之后就是对表进行的增删改查(crud)操作

类似于在mysql以及orecl等其他数据库一样,若是对数据库表的操作通常步骤

  1. 登录数据库-------导入数据库引擎
  2. 创建sql window----创建查询命令的会话窗口 sessionmaker
  3. 写SQL代码 -------对class进行相应的操作
  4. 选中sql命令点击执行-----提交会话窗口中的命令

对应的具体的sqlalchemy的代码以及操作

 

1)登录数据库----登录数据库-------导入数据库引擎

From sqlalchemy import creat_engine

Engine=create_engine('oracle://xn_china_wind:xn_chinawind34@172.16.2.34/orcl')

  1. 创建sql window----创建查询命令的会话窗口 sessionmaker

From sqlalchemy.orm import sessionmake()

Session =  sessionmaker(engine)-----在数据库引擎中创建会话窗口

Session_win = Session( )---------------打开session会话窗口

 

  1. 写SQL代码 -------对class进行相应的操作

一、

对创建的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语句在会话窗口

 

 

  1. 点击运行的操作

一、

Session_win.commit() -------提交指令

Session_win.close()-----------------关闭会话窗口

 

二、

Session_win.commit() -------提交指令

Session_win.close()-----------------关闭会话窗口

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值