首页 > 数据库 >[SQLAlchemy]修改 删除数据

[SQLAlchemy]修改 删除数据

时间:2023-03-28 18:55:34浏览次数:34  
标签:__ SQLAlchemy name 删除 db 修改 User import id

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

相关文章

  • V3.0(R2_2302) 前端上下文改造, 定位修改文件
    --iuap_yonbuilder_service库--查询包含'AppContext'关键字的函数文件SELECTe.description,e.source_flag,e.file_name,c.file_content,LOC......
  • Perl快速删除文件和目录
    删除文件和空目录脚本 1#!/usr/bin/perl23useFile::Find;45my$dir='/path/to/directory';6find(sub{unlink$_if-f$_},$dir);7find(sub{rmdi......
  • ubuntu查看和修改PATH环境变量
    总结:path变量其实存储在/etc/environment文件中,如果要重置PATH只需要source/etc/environment1、查看PATHecho$PATH2、修改PATH修改ubuntu中PATH的方法:直接修改$PAT......
  • html 修改标签内的内容
    url="html_nav/"+namesetData='<objecttype="text/html"data=final_datawidth="100%"height="100%"></object>'document.getElementById("bottom_view").inne......
  • 修改sshd的侦听端口
    Linux默认的侦听端口是22,现在是需要修改为10022操作系统以Centos7.9为例:1. 编辑sshd配置文件vim/etc/ssh/sshd_config  2.调整Selinux,将侦听端口添加到sell......
  • vue3 中 pinia 的 state 修改模版绑定的 state 数据没更新?
    解决方案:给state增加 computedimport{useLayerStore}from"@/stores/";constlayer=useLayerStore();constlayerList=computed(()=>layer.layerList);......
  • mysql修改表字符集
    briefmysql表字符集修正linkhttps://blog.csdn.net/qq_17555933/article/details/101445526altertablexxxconverttocharactersetutf8collateutf8_bin;alte......
  • Docker Desktop修改存储位置
    WindowsDockerDesktop修改存储位置一、DockerDesktop安装DockerDesktop的安装过程没有什么特殊需要说明的地方,按照正常软件安装过程完成安装即可在安装完成后,Docke......
  • django使用后台admin修改/删除记录的同时更新文件
    问题使用django自带admin后台删除表的时候,因为文件是存在服务器的,所以是只是删除了数据库的数据,而服务器的文件还存在解决models.py#模型类class......
  • sqlalchemy_learn_sqlite
    /Users/song/codelearn/sqlalchemy_learn/init_test_data.py#!/usr/bin/envpython3#-*-coding:utf-8-*-importasyncioimportrandomfromfakerimportFakerf......