Python Sqlalchemy数据库连接

    • 一、连接数据
    • 二、模型
    • 三、ORM操作

一、连接数据

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker# 1. 连接数据库
dbHost = 'postgres://用户名:密码@主机:端口/数据库名'
engine = create_engine(dbHost)
# create_engine() 参数说明:
# a. dbHost, # 数据库连接信息
# b. echo=False,  # 是否打印SQL
# c. pool_size=10,  # 连接池的大小,指定同时在连接池中保持的数据库连接数,默认:5
# d. max_overflow=20,  # 超出连接池大小的连接数,超过这个数量的连接将被丢弃,默认: 5# 2. 创建会话
Session = sessionmaker(bind=engine)
session = Session()

二、模型

from sqlalchemy import Column, String, TIMESTAMP
from sqlalchemy.dialects.postgresql import INTEGER, TEXT, VARCHAR
from sqlalchemy.ext.declarative import declarative_base# 模型父类
Base = declarative_base()
class User(Base):__tablename__ = 'auth_user'id = Column(INTEGER, primary_key=True)active = Column(INTEGER)name = Column(TEXT)class Size(Base):__tablename__ = 'master_size'id = Column(INTEGER, primary_key=True)active = Column(INTEGER)size = Column(TEXT)user_id = Column(INTEGER)

三、ORM操作

from sqlalchemy import func# 1. 查询
# func.lower(User.name)  转换为小写
user_objs = session.query(User).filter(func.lower(User.name) == 'jack', User.active == 0)
user_obj = session.query(User).get(5)   # 获取id=5
user_obj = session.query(User).get({"id": 5, "active": 0}) # 获取id=5 and active=0# 2. 添加 
# 添加User
user_obj = User(name='张三', active=0)
session.add(user_obj)   # 添加
session.commit()   # 提交
# 添加Size
size_obj = Size(size='XXL', active=0, user_id=user_obj.id)
session.add(size_obj)   # 添加
session.commit()   # 提交# 3. 删除
user_objs = session.query(User).filter(func.lower(User.name) == 'jack', User.active == 0)
session.delete(user_objs)
session.commit()# 修改
user_obj = session.query(User).get({"id": 5, "active": 0})
user_obj.name = '李四'
session.commit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93568.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93568.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93568.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Node.js】ECMAScript标准 以及 npm安装

目录 一、 ECMAScript标准 - 默认导出和导入 二、ECMAScript标准 - 命名导出和导入 三、包的概念 五、 npm - 安装所有依赖 六、 npm - 全局软件包 Node.js总结 总结不易~ 本章节对我有很大的收获, 希望对你也是!!! 本节素材…

NPM 、 NPX

NPM vs. NPX 简单来说,npm 是一个 node 包管理器,npx 是一个 Node 包执行器。 NPX 是一个 Node 包执行器,该 Node 包可以是本地也可以是远程的。允许开发者在无需安装的情况下执行任意 Node 包。npm 在安装nodejs 就自动带了 npm install -g …

守护品质安全,防伪溯源系统打造全链路信任体系

一、引言在当下这个信息透明、品质至上的时代,防伪溯源已经成为众多品牌保护自身利益、提升消费者信任度的重要手段。为了满足市场上对高效、可靠的防伪溯源查询系统的迫切需求,榕壹云精心打造了一款防伪溯源查询系统。二、项目背景随着商品市场的不断扩…

【完整源码+数据集+部署教程】无人机航拍视角洪水检测与受灾房屋识别图像分割救援指导系统源码和数据集:改进yolo11-DCNV2

背景意义 研究背景与意义 随着全球气候变化的加剧,极端天气事件的频率和强度不断上升,洪水作为一种常见的自然灾害,给人类社会带来了严重的威胁。洪水不仅导致人员伤亡和财产损失,还对基础设施和生态环境造成了深远的影响。因此&a…

C# 结构体与类的区别是什么?

结构体是值类型是储存在栈中独立储存的,数据与数据之间不会相互影响,即使将一个结构体赋值给另外一个结构体也不会相互影响。 类是一个模板,实例出来的对象是独立的不会相互影响,但是将一个对象赋值给另一个对象时 会把指向堆内存中数据的指针赋值给另一个对象.从而发生两个变量…

Redis GEO

Redis GEO 引言 Redis 是一款高性能的键值存储系统,广泛应用于缓存、消息队列等领域。Redis GEO 是 Redis 2.4 版本后新增的一个功能,用于存储地理位置信息。本文将详细介绍 Redis GEO 的概念、使用方法以及应用场景。 什么是 Redis GEO? Redis GEO 是 Redis 的一个模块…

Go从入门到精通系列学习路线规划

Go从入门到精通系列学习路线规划 目录导航 Go从入门到精通系列学习路线规划首页说明 第1篇_Go语言初探_环境搭建与HelloWorld 第2篇_Go语言基础语法_变量常量与数据类型 第3篇_Go语言控制结构_条件判断与循环 第4篇_Go语言函数详解 第5篇_Go语言数据结构详解 第6篇_Go语言结构体…

Grid系统概述

目录 概念及功能 网格对象(Grid Object) 和世界对象(World Object) 工作流程 概念及功能 TrinityCore 的 Grid 系统是一套复杂的地图分区管理机制,其核心目标是通过动态管控游戏世界的区域状态和对象生命周期&#…

一文搞懂LLM大模型!LLM从入门到精通万字长文(2024.12月最新)

LLM从入门到精通精品文章 目录 一、LLM基本概念 二、LLM发展历程 三、LLM大模型的分类 四、LLM主流大模型类别 五、LLM大模型建立的流程 六、Fine-Tuning 七、Prompt-Tuning 八、超大规模参数模型Prompt-Tuning方法 8.1上下文学习 In-Context Learning 8.2.指令学习 …

Next.js跟React关系(Next.js是基于React库的全栈框架)(文件系统路由、服务端渲染SSR、静态生成SSG、增量静态再生ISR、API路由)

文章目录**1. React 是基础,Next.js 是扩展****2. Next.js 解决了 React 的哪些痛点?****3. 核心区别****4. Next.js 的核心特性**1. **文件系统路由**2. **服务端渲染(SSR)**3. **静态生成(SSG)**4. **增量…

Nightingale源码Linux进行跨平台编译

最近使用Nightingale 需要实现对服务的监测,想要在Windows 系统中使用,看官方文档中并不直接提供执行程序,原文如下: 准备工作 本地环境 本地已经安装git 本地安装git 便于后续下载源码并进行自动编译。 Linux操作系统环境&…

抽丝剥茧丨PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(二)

续接上回《PostgreSQL 系国产数据库%SYS CPU newfstatat() high 调优一例(一)》,这个问题还在持续,并且原因并不只是一个,从调了文件系统级atime,到调整wal size减少日志被动清理,还有在验证tem…

【新手入门】Android Studio 项目结构拆解,快速理解文件作用!

目 录 一、【Project】视图下项目结构(真实目录) 二、【Android】视图下项目结构 三、【app/】下重要文件解析 1、 build.gradle 2、AndroidManifest.xml 3、res/ 作为刚刚接触Android开发的小白,使用Android Studio创建项目后&…

Python实现点云Kmeans、欧式和DBSCAN聚类

本节我们分享点云处理中的三种常见聚类方法,分别是K-means、欧氏与 DBSCAN聚类。具体介绍如下:1. K-means 聚类定义:一种基于距离度量的无监督学习算法,将数据划分为 K 个紧凑的簇,使簇内数据相似度高、簇间差异大。算…

【Java后端】MyBatis-Plus 原理解析

MyBatis-Plus 原理解析 其实 MyBatis-Plus 的 Service 层设计就是为了让开发者不用重复写很多样板代码。我们来一点点剖析 UserServiceImpl、IService、UserService、ServiceImpl 之间的关系和调用链。1. 类/接口关系图IService<T>▲│UserService (接口) <-- 自定义…

Nacos 注册中心学习笔记

&#x1f389; Alibaba微服务组件 Nacos 注册中心超详细学习笔记 &#x1f389; &#x1f4cc; 写在前面&#xff1a;本文基于官方PDF文档与实战经验&#xff0c;整理了Nacos注册中心的核心知识点、部署流程与实战技巧&#xff0c;力求图文并茂、通俗易懂&#xff0c;适合收藏反…

java 策略模式 demo

策略模式介绍策略模式&#xff08;Strategy Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装起来并使它们可相互替换。策略模式让算法的变化独立于使用算法的客户端&#xff0c;从而实现灵活的算法切换。核心角色&#xff1…

SAP Valuation Category在制造业成本核算中的使用场景与配置方案

Valuation Category在制造业成本核算中的使用场景与配置方案一、核心使用场景&#xff08;制造业特有&#xff09;1. 内制 vs 外购成本分离业务需求&#xff1a;同一物料可能通过内部生产&#xff08;成本含料工费&#xff09;或外部采购&#xff08;成本含采购价运费&#xff…

我的 LeetCode 日记:Day 36 - 动态规划,背包问题的千变万化

昨天&#xff0c;我初步掌握了 0/1 背包问题的理论基础和标准解法。今天&#xff0c;我将这种思想应用到了更广泛的场景中。今天的几道题&#xff0c;乍一看和背包没什么关系&#xff0c;但通过巧妙的数学转化&#xff0c;它们的核心都变成了 0/1 背包问题。 这让我深刻体会到…

本地处理不上传!隐私安全的PDF转换解决方案

PDF能锁定排版、字体、图片位置&#xff0c;无论在什么设备打开都保持一致。它是无广告、简洁高效的专业PDF处理工具。功能丰富&#xff0c;支持批量操作&#xff1a;只需将文件拖入界面&#xff0c;选择目标格式&#xff08;如Word、PPT、Excel、图片等&#xff09;&#xff0…