一、什么是SQLAchemy?

  SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

  1、安装SQLAlchemy

pip3 install SQLAlchemy

SQLAchemy基础知识

  SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:

MySQL-Python
    mysql+mysqldb://用户名:密码(无密码为空)@<host>[:<port>]/<dbname>
   
pymysql
    mysql+pymysql://用户名:密码(无密码为空)@<host>/<dbname>[?<options>]
   
MySQL-Connector
    mysql+mysqlconnector://用户名:密码(无密码为空)@<host>[:<port>]/<dbname>
   
cx_Oracle
    oracle+cx_oracle://用户名:密码(无密码为空)@host:port/dbname[?key=value&key=value...]
   
更多详见:http://docs.sqlalchemy.org/en/latest/dialects/index.html

  二、ORM的使用机制

  orm 通过 Engine/ConnectionPooling/Dialect 进行数据库操作,Engine使用ConnectionPooling连接数据库,然后再通过Dialect执行SQL语句。

from sqlalchemy import create_engine

# 基于pymysql连接数据库
engine=create_engine("mysql+pymysql://root:@127.0.0.1:3306/db4?charset=utf8",max_overflow=5)

#  创造出类
Session=sessionmaker(bind=engine)

#  实例化出对象
session=Session()

#  对象的方法

#1、增:

#    增加一行数据:
obj=表名(列名1=值1,列名2=值2...)
session.add(obj)
    
#    增加多行数据:
objs=[
    表名(列名1=值1,列名2=值2...),
    表名(列名1=值1,列名2=值2...),
    表名(列名1=值1,列名2=值2...),
    ...
]
session.add_all(objs)

#2、删:

session.query(表名).delete()
session.query(表名).filter(条件表达式).delete()

#3、改:

session.query(表名).filter(条件表达式).update({"列名1":"更新的值1",
"列名2":"更新的值2",...})
session.query(表名).filter(条件表达式).update({表名.列名1:值1+"str1",
表名.列名2:值2+"str2",...},synchronize_session=False)
#支持字符串拼接
session.query(表名).filter(条件表达式).update({表名.列名1:num1+1,
表名.列名2:num2+1,...},synchronize_session=evaluate)
#支持值为数字的数学运算

#4、 查:

变量名=session.query(表名).filter(条件表达式).all()
for row in 变量名:
    print(row.列名1,row.列名2...)
orm相关语法

相关文章:

猜你喜欢
  • 2021-10-28
  • 2022-12-23
  • 2021-05-21
  • 2021-06-12
  • 2022-12-23
  • 2021-12-06
相关资源
相似解决方案