138.python内置模块sqlalchemy进行sql操作详解
文章目录
- 安装
- 使用
- 参数解释
- 详解demo
- 查询
- 删除
- 增加
本文只针对于sqlalchemy连接mysql
sqlalchemy官方
安装
pip3 install sqlalchemy
使用
参数解释
- 创建一个引擎,目的是连接到我们的数据库上
root: mysql 用户名
password: 密码
host: 主机ip
dataBaseName: 数据库名字
create_engine('mysql+pymysql://root:password@host:3306/dataBaseName',echo=True)
- 打开数据库的连接会话
session = sessionmaker(engine)
- 保证线程安全
db_session = scoped_session(session)
- 获取基类
Base = declarative_base()
详解demo
我的user
表
连接我的数据库
import hashlib
import json
from sqlalchemy import create_engine, Column, Integer, String, Table, func
from sqlalchemy.orm import sessionmaker, scoped_session, declarative_base
from sqlalchemy import or_
from sqlalchemy.sql.elements import and_
# 创建一个引擎,目的是连接到我们的数据库上
engine = create_engine('mysql+pymysql://root:lh334421@127.0.0.1:3306/myDataBase',echo=True)
# 打开数据库的连接会话
session = sessionmaker(engine)
# 保证线程安全
db_session = scoped_session(session)
# 获取基类
Base = declarative_base()
表链接
class User(Base):
__table__ = Table("user",Base.metadata,autoload_with=engine)
查询
- 查询所有
result01 = db_session.query(User).all()
print(result01)
- 查询判断( < > = or and like limit sum )
result = db_session.query(User).filter(User.user_id < 10).all()
result = db_session.query(User).filter(User.user_id > 10).all()
result = db_session.query(User).filter(User.user_id > 10).limit(10).all()
result = db_session.query(User).filter(User.user_id > 10).limit(10).offset(2).all()
result = db_session.query(User).filter(or_(User.user_id == 1, User.user_id == 2)).all()
result = db_session.query(User).filter(and(User.user_id == 1, User.username == '1@qq.com')).all()
result = db_session.query(func.sum(User.user_id)).all()
result = db_session.query(User).order_by(User.user_id.desc()).all()
result = db_session.query(User).order_by(User.username.like("%@qq.com")).all()
删除
result = db_session.query(User).filter(User.user_id == 1).delete()
增加
params = {
"username": '"张三",
"nickname": “zs”,
"password": 123,
"picture": “1.png”,
}
user = User(**params)
db_session.add(user)
db_session.commit()