import pymysql
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, String, Integer
from sqlalchemy.orm import Session, DeclarativeBase
from urllib.parse import quote_plus as urlquote
# 使用pymysql作为MySQLdb
pymysql.install_as_MySQLdb()
# 指定连接的MySQL数据库
PASSWORD = '[email protected]'
DATABASE_URL = f"mysql://root:{urlquote(PASSWORD)}@10.105.212.1:3306/db"
# 创建引擎
engine = create_engine(DATABASE_URL)
# 基于引擎创建session
SessionLocal = sessionmaker(bind=engine)
# 实例化session对象,得到db对象
db: Session = SessionLocal()
# db使用只有需要关闭,避免占用资源
# db.close()
# 创建对象的基类:
class Base(DeclarativeBase):
pass
# 定义User对象:
class User(Base):
__tablename__ = "users" # 指定数据库中表的名字
id = Column(Integer, primary_key=True, autoincrement=True) # 定义id作为主键且自增
name = Column(String(255)) # 定义name字段,是一个string类型
password = Column(String(255)) # password,是一个string类型
# 人性化定制对象的打印输出
def __str__(self):
return f"id: {self.id}, name: {self.name}, password: {self.password}"
# 修改数据
user: User = db.query(User).filter(User.id == 1).first()
print(user)
user.name = "LIUXU" # 直接修改对象的属性值
db.commit() # 然后提交保存才能更新
# 修改数据,使用 `update()`,支持批量更新
db.query(User).filter(User.id == 1).update({"name": "LLL"}) # 更新指定字段的值
db.commit() # 提交保存修改
# 删除数据,使用 `delete()`,支持批量删除
db = SessionLocal()
db.query(User).filter(User.id >= 3).delete() # 支持批量删除
db.commit() # 提交才能删除
# 关闭db连接(重要)
db.close()
标签:__,SQLAlchemy,name,删除,db,修改,User,import,id
From: https://www.cnblogs.com/leoshi/p/17266338.html