python里比较流行的ORM框架:sqlalchemy

SqlAlchemy使用教程(一) 原理与环境搭建 本文介绍了sqlalchemy 的原理,架构,什么是ORM, 常用术语如metadata, session 等,SqlAlchemy主要版本及特性,最后讲述了如何搭建编程环境。 阅读详情

安装

http://docs.sqlalchemy.org

1、安装

#进入虚拟环境
#执行
./python3 -m pip install
import sqlalchemy

print(sqlalchemy.__version__) # 1.1.15

我这里使用的版本是1.1.15

创建连接对象

http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting

from sqlalchemy import create_engine

# 连接本地test数据库
engine = create_engine("mysql://root:root@localhost/test?charset=utf8")

运行时会出错,因为需要驱动库,默认会调用MySQLdb。

ImportError: No module named 'MySQLdb'

我们前面安装了pymysql,因此完整的要这么写:

engine = create_engine("mysql+pymysql://root:root@localhost/test?charset=utf8")

简单使用

SQL语句查询

result = engine.execute("select * from news")
print(result.fetchall()) 
#[(1, '本机新闻标题'), (2, '今天的新闻'), (3, '新闻标题1'), (4, '新闻标题2'), (5, '元组新闻1'), (6, '元组新闻2')]

创建映射

既然我们用ORM,就是为了少写甚至不写SQL语句。

ORM是数据表和对象之间的映射。
http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#declare-a-mapping

1、创建一个Infos.py文件,这个文件我们来做数据表的映射

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String

class News(Base):
    # 表名称
    __tablename__ = 'news'

    # news表里id字段
    id = Column(Integer, primary_key=True, autoincrement=True)
    # news表里title字段
    title = Column(String(length=255), nullable=False)

News类就是我们数据表news的映射(字段:id、title)。

2、使用

from sqlalchemy import create_engine
from mappers.Infos import News
from  sqlalchemy.orm import sessionmaker

# 连接本地test数据库
engine = create_engine("mysql+pymysql://root:root@localhost/test?charset=utf8")

# 创建会话
session = sessionmaker(engine)
mySession = session()

# 查询结果集
result = mySession.query(News).all()
print(result[0])

我们要注意最后的查询结果,看看结果集中的元素长什么样?^_^

<mappers.Infos.News object at 0x1050c6e80>

查询处理的记录都是对象。

各种查询

只查询第一条记录

# 查询第一条
result = mySession.query(News).first()
print(result.title) #打印对象属性

通过id字段查询

# 查询id为2的
result = mySession.query(News).filter_by(id=2).first()
print(result.title)
# 查询id为2的
result = mySession.query(News).filter(News.id==2).first()

分页查询

# 分页查询 0,2
result = mySession.query(News).filter(News.id>1).limit(2).offset(0).all()
print(result)

自定义过滤条件

# 自定义过滤条件
result = mySession.query(News).filter(text("id>:id")).params(id=2).all()

根据主键查询

result = mySession.query(News).get(3)
print(result.title)

新增和修改

# 新增
news = News(title="新增测试标题")
mySession.add(news)
mySession.commit()
#修改
mySession.query(News).filter(News.id==7).update({"title":"修改之后的标题"})
mySession.commit()
Python ORM框架SQLAlchemy操作 ORM 全称Object Relational Mapping(对象关系映射)。 特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易读。 具体的实现方式是将数据库表转换为Python类,其中数据列作为属性,数据库操作作为方法。 优点 简洁易读:将数据表抽象为对象(数据模型),更直观易读 可移植:封装了多种数据库引擎,面对多个数据库,操作基本一致,代码易维护 更安全:有效避免SQL注入 具体实现库 SQLOb 阅读详情

相关推荐

谈谈Python中的ORM框架,如SQLAlchemy

综上所述,SQLAlchemy作为Python中的ORM框架,具有灵活性与可扩展性、关系管理与查询构建、事务管理与并发控制、集成性与可维护性以及性能优化与调试等多方面的优势。SQLAlchemy可以与各种Python Web框架(如Flask、Django等)和数据库(如MySQL、PostgreSQL、SQLite等)无缝集成,使得开发者能够在一个统一的框架内完成整个应用程序的开发。在查询构建方面,SQLAlchemy提供了强大的查询API,允许开发者以链式调用的方式构建复杂的查询语句。

Xs_layla的博客 1215

【Flask】from flask_sqlalchemy import SQLAlchemy报错

在使用 flask_sqlalchemy 之前,你需要确保已经通过 pip 安装了 Flask-SQLAlchemy。

weixin_56463218的博客 9089

Python学习笔记 --- ImportError: No module named sqlalchemy

Python学习笔记 --- ImportError: No module named sqlalchemy

杨鑫newlife的专栏 2万+

Python数据库ORM框架SQLALchemy操作数据库简单封装表关系(一对一、一对多、多对多)增删改查crud工具

SQLALchemy是python下操作数据库的工具包,是一个数据库ORM(对象关系映射)框架,使用SQLALchemy可以极大的简化对数据库和数据的操作,使用ORM管理数据更直观方便.这里我记录一次关于sqlalchemy使用的简单实践,包括了创建数据库连接、定义模型、表关系(一对一、一对多、多对多)增删改查、crud工具,最后使用了pytest进行了一些测试.

J_Sky:编程爱好者,又菜又爱玩. 1861

避坑指南:中国地面气候日值数据集(V3.0)处理中的常见错误与解决方案

本文详细解析了中国地面气候日值数据集(V3.0)处理中的常见错误与解决方案,包括数据清洗、特征值解码、时间序列处理和质量控制等关键步骤。通过Python实战代码示例,帮助研究者高效处理这一包含全国699个气象站多要素日值数据的数据集,避免常见陷阱,提升气候变化研究和农业气象分析的准确性。

xray4的博客 1025

详解在linux上安装vpn客户端

详解在linux上安装vpn客户端

FuncPlotCalc 8420

python中的sqlalchemy一些相关问题

插入中文报错如下: File "E:/PYcharm/workDir/学习过程/mysql模块/sqlalche模块.py", line 41, in <module> data = session.query(User).filter_by().all() File "E:\python3\lib\site-packages\sqlalchemy\orm\query.py"...

weixin_30530939的博客 1012

allegro转AD-(附工具)

本文介绍了将Allegro的.brd文件转换为Altium Designer可用的.alg文件的操作流程。首先需要下载专用转换工具,然后通过运行.bat脚本将.brd文件转换为.alg格式。最后在Altium Designer中使用导入向导完成文件转换,生成可用的PCB设计文件。整个过程简单快捷,只需三个步骤即可实现Allegro到Altium Designer的工程文件转换。

weixin_50120208的博客 1713

Python 数据持久层ORM框架 SQLAlchemy模块

SQLAlchemy:强大的数据库抽象层,简化ORM操作,提供高效查询接口,支持多种数据库引擎。解锁数据交互潜能,助力开发者专注业务逻辑。选择SQLAlchemy,让数据库管理变得轻松而高效!

weixin_54217348的博客 4280

用VINS-Fusion跑通EuRoC数据集:Ubuntu22.04+ROS2环境下的保姆级评测指南

本文详细介绍了在Ubuntu22.04和ROS2 Humble环境下使用VINS-Fusion处理EuRoC数据集的完整流程。从环境配置、数据集转换到参数调优和性能评估,提供了一套全面的多传感器融合分析方案,帮助开发者在无人机精准定位场景中实现高效部署与优化。

weixin_29212867的博客 517

Openclaw 附录B 常用Skills清单

核心作用支持URL、网页、PDF、图片、音频和YouTube视频的摘要与字幕提取,由OpenClaw创始人@steipete开发的官方内置Skill。安装⚠️说明:原推荐的summarize未在ClawHub验证到,YouTube字幕提取功能已内置于summarize中。使用场景“提取这个2小时Next.js教程视频的核心代码逻辑,按章节整理成学习笔记”推荐指数:⭐⭐⭐⭐。

Maynor的博客 856

Python流行orm框架对比

它提供了足够的功能来满足小型项目的需求,同时保持了代码的简洁和易于维护。因此,如果你的项目不是基于Django框架,并且需要一个简单、快速上手的ORM,Peewee会是一个更好的选择。Django ORM因其与Django框架的紧密集成和直观的API而受到推荐,而Peewee则因其轻量级和简单性而适合初学者。在小型项目中,选择Peewee和Django ORM之间的合适框架,需要考虑项目的具体需求和特点。这些ORM框架各有特点,适用于不同的项目和场景,开发者可以根据项目需求和个人偏好选择合适的ORM框架。

未来已来,AI时代,学AI编程,做AI量化,就来大鹏AI教育。 1557

基于YOLOv8的工业瓷砖缺陷检测:深度学习与UI界面的应用

本文详细介绍了如何使用YOLOv8进行工业瓷砖缺陷检测,并结合图形用户界面(UI)提供了完整的实现方案。通过YOLOv8模型,我们可以高效、精确地检测瓷砖图像中的缺陷,显著提高生产过程中的质量控制水平。随着数据集的进一步扩展和YOLOv8模型的不断优化,未来瓷砖缺陷检测的精度和速度将不断提高。此外,基于深度学习的缺陷检测技术不仅可以应用于瓷砖生产,还可以推广到其他领域的质量检测中。

YOLO 603

ORM框架(SQLAlchemy 与 Tortoise )

ORM(Object-Relational Mapping,对象关系映射)是一种编程技术,用于在面向对象编程语言和关系数据库之间建立映射关系。它允许开发者使用面向对象的方式操作数据库,而不需要编写复杂的SQL语句。ORM的核心优势:代码可读性:使用Python对象而非SQL语句,代码更直观数据库无关性:同一套代码可以在不同数据库间切换安全性:自动防止SQL注入攻击维护性:模型变更时自动处理数据库结构变化。

zhangsan0933的博客 3338

鸿蒙开发实战项目(九十二):HUAWEI Health血压测量

是华为开发的用于运动健康领域的一个开放平台, 三方APP可以借助HUAWEI Health开放平台提供的。

斌擎科技 1131

论文阅读:2024 ACM CCS “Do Anything Now”: Characterizing and Evaluating In-The-Wild Jailbreak Prompts on

大语言模型(LLMs)的滥用问题引起了公众和大语言模型供应商的高度关注。有一种特殊的对抗性提示,叫做越狱提示,它已成为绕过防护措施、让大语言模型生成有害内容的主要攻击手段。在这篇论文中,作者使用新框架JailbreakHub,对2022年12月至2023年12月期间的1405个越狱提示进行了全面分析。作者识别出131个越狱提示社区,发现了越狱提示的独特特征以及主要攻击策略,比如提示注入和权限提升。

CSPhD-winston的博客 1410

ORM框架及SQLAlchemy

ORM(如 SQLAlchemy)是现代软件开发中不可或缺的工具,它极大地简化了数据库操作,提升了开发效率和代码安全性。并非简单的 ORM,而是一个完整的 SQL 工具集。在提供高级对象抽象的同时,没有牺牲对底层 SQL 的控制力。架构优雅,功能强大且灵活,是构建中大型、高性能 Python 项目的首选。对于初学者,建议从 ORM 层开始学习,了解基本的模型定义和 CRUD 操作。随着项目的复杂,再逐步探索其 Core 层和更高级的特性。

m0_46322965的博客 1552

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深入解析Python ORM框架SQLAlchemy

SQLAlchemy架构与核心机制解析 SQLAlchemy作为Python生态中成熟的ORM框架,采用分层架构设计,包含ORM层、Core层和引擎层。其核心机制包括:Engine与连接池、Dialect方言系统、分层架构、关键特性等。

专注人工智能应用领域 1039

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python ORM神器:SQLAlchemy完全指南

摘要:SQLAlchemy是Python中最流行的ORM框架,提供了优雅的数据库操作方式。它支持多种数据库,包含Engine引擎、Session会话和Model模型等核心概念。通过安装SQLAlchemy后,开发者可以轻松实现数据增删改查、事务管理等功能。文章详细介绍了SQLAlchemy的基本用法,包括创建模型、数据库操作方法(add/commit/query等)、事务管理(commit/rollback)以及连接池配置等实用技巧。该框架既支持面向对象操作,又能执行原生SQL,是Python数据库开发的强

weixin_67327688的博客 2292

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python ORM框架:SQLAlchemy 的基础用法

文章目录一、SQLAlchemy 介绍1.1 ORM 的概念1.2 SQLAlchemy介绍1.3 架构1.4 异步1.5 安装二、SQLAlchemy 快速入门2.1 创建配置(可选)2.2 创建引擎和获取、关闭连接2.3 创建 ORM 模型2.4 创建会话2.5 创建和删除表2.6 新增数据2.7 查询数据2.8 修改数据2.9 删除数据三、多表操作3.1 一对多3.2 多对多 一、SQLAlchemy 介绍 1.1 ORM 的概念 ORM全称 Object Relational Mapping(对象关

花城的博客 2816

Python ORM 框架 SQLAlchemy 的简单使用

本篇博文主要列举了ORM框架SQLAlchemy的增删改查API接口的使用,第四章节主要是封装了简单的增删改查的工具类,减少实体类与查询条件的耦合性

lujx_1024的博客 1678

python-orm框架之SQLALchemy

使用 SQLAlchemy 的 ORM 功能来定义你的数据模型。

wsy_666的博客 1097

SQLAlchemy ORM框架

ORM简介 ORM 全称 Object Relational Mapping, 叫对象关系映射。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。 对于数据的操作增、删、查、改(主要是查)得到的只是一个字符串没办法显示在前端界面。但用面向对象语言与类建立映射(mapping)后将得到的字符存储在内存中,在声明周期类显示在界面上。 我们知道操作数据库都是用SQL语句执行的: 建数据库 crea

个人学习笔记库,一篇一篇记录成长的足迹 2379

ORM框架SQLAlchemy

sqlalchemy是Python的SQL工具和ORM框架,可以用Python代码直接操作关系型数据库(例如:MySQL、PostgreSQL、Oracle)官方文档。

AZURE060606的博客 1137

python安装sqlalchemy-Python流行ORM框架sqlalchemy安装与使用教程

本文实例讲述了Python流行ORM框架sqlalchemy安装与使用。分享给大家供大家参考,具体如下:安装1、安装#进入虚拟环境#执行./python3 -m pip installimport sqlalchemyprint(sqlalchemy.__version__) # 1.1.15我这里使用的版本是1.1.15创建连接对象from sqlalchemy import create_en...

weixin_39956612的博客 561
上一篇: python和mysql交互
下一篇: 利用sqlacodegen自动生成ORM实体类
学习笔记666
博客等级 码龄12年 1047粉丝 1369原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值