Python SQLAlchemy入门教程(基本用法)

yizhihongxing

下面我将分步骤详细讲解 Python SQLAlchemy 入门教程的完整攻略。

1. 前言

Python SQLAlchemy 是 Python中一款优秀的 ORM 框架,它可以将关系数据库中的表结构映射到 Python 对象上,并支持使用对象操作数据库。

2. 准备工作

在开始之前,我们需要准备一些工作:

  • 安装必要的依赖,包括 SQLAlchemy 和 pymysql。
  • 安装 MySQL 数据库并启动 MySQL 服务。

安装方式如下:

pip install sqlalchemy pymysql
sudo apt-get install mysql-server

3. 建立数据库连接

在建立数据库连接之前,我们需要定义一些与数据库相关的参数,如数据库名称、账号、密码等。在本示例中,我们使用 MySQL 作为示例数据库,并使用 root 用户访问数据库。

from sqlalchemy import create_engine

DB_NAME = 'test_db'
DB_USER = 'root'
DB_PASSWORD = 'password'
DB_HOST = 'localhost'
DB_PORT = '3306'

engine = create_engine(f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}', echo=True)

注意:在这里我们使用了 f-string 来动态构建和数据库相关的连接字符串

4. 建立数据模型

在 SQLAlchemy 中,数据模型通常由 Python 类来表示,每个类代表数据库中的一个表,类属性则代表表中的字段。在本示例中,我们定义一个 User 类,并将其映射到数据库的 user 表中。

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()


class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True)
    name = Column(String(50), nullable=False)
    age = Column(Integer, nullable=False)

注意:定义的类中必须要包含 tablename 属性,该属性用于指定将该类映射到数据库中的哪个表中。

5. 创建表结构

在映射定义好的数据模型之后,我们需要创建对应的数据库表结构。可以使用 SQLAlchemy 中 Base 类的 metadata 属性创建表结构。

Base.metadata.create_all(engine)

6. 插入数据

在创建好表结构之后,我们就可以使用 Python 中的对象操作数据库了。我们可以通过定义类对象的方式,向数据库中插入一条记录。

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

user = User(name='Lucy', age=18)

session.add(user)
session.commit()

# 打印插入的数据信息
print(user.id, user.name, user.age)

7. 查询数据

在插入了一条记录之后,我们可以通过 SQLAlchemy 提供的 API,从数据库中查询记录。我们使用 .query() 方法来创建一个查询对象,该对象可以调用 SQLAlchemy 中提供的各种查询 API,如 filter、limit 等。

# 查询所有数据
users = session.query(User).all()

for u in users:
    print(u.id, u.name, u.age)

# 根据条件查询数据
user = session.query(User).filter_by(name='Lucy').first()

if user:
    print(user.id, user.name, user.age)
else:
    print('无记录')

总结

至此,我们已经成功完成了一个基本的使用 Python SQLAlchemy 操作 MySQL 数据库的示例。在实际项目中,我们可以通过 ORM 框架更加方便和高效地操作数据库,并且能够避免 SQL 注入等安全问题,提高应用程序的安全性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python SQLAlchemy入门教程(基本用法) - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python五种下划线详解

    下面是关于Python五种下划线的详细讲解及示例说明。 一、概述 在Python中,下划线(_)有五种不同的使用方式,它们分别是: 单个下划线:命名约定,表示弱内部使用,不会呈现在from module import * 单个前置下划线:命名约定,表示为非导出属性或方法 单个后置下划线:用于避免与Python关键字名称的冲突 双前置下划线:名称修饰,用于使属…

    python 2023年5月18日
    00
  • 如何使用Python进行PDF图片识别OCR

    当需要将PDF中的图片提取出来,并使用OCR技术对图片内容进行文字识别时,Python是一个很好的选择。下面是使用Python进行PDF图片识别OCR的详细攻略: 1. 安装依赖库 首先需要安装一些依赖库,包括PyPDF2, Pillow 和 pytesseract: pip install pypdf2 pillow pytesseract 其中,PyPD…

    python 2023年5月18日
    00
  • Python实现中英文全文搜索的示例

    下面我将详细讲解“Python实现中英文全文搜索的示例”的完整攻略,具体内容如下: 1. 准备工作 首先,需要安装Python3的开发环境,以及Python的第三方依赖库Whoosh和jieba。- 安装Python可以到 Python官网 下载对应的版本并安装。- 安装Whoosh和jieba可以使用pip命令进行安装。 pip install Whoos…

    python 2023年6月3日
    00
  • python 实现朴素贝叶斯算法的示例

    下面是详细讲解“Python实现朴素贝叶斯算法的示例”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 朴素贝叶斯算法是一种基于贝叶斯定理和特征条件独立假设的分类算法。其基本思想是根据已知类别的训练数据,计算每个特征在不同类别下的条件概率,然后根据贝叶斯定理计算每个类别的后验概率,最终将样本分配到后验概率最大的类别中。具体来说,朴素贝叶斯…

    python 2023年5月14日
    00
  • python内打印变量之%和f的实例

    当我们在Python中想要打印变量的时候,可以使用字符串格式化来将变量插入到字符串中。其中,有两种方法可以进行字符串格式化,即使用%和使用f。 使用%进行字符串格式化 使用%进行字符串格式化的方法是最早的字符串格式化方法,也是最古老的方法之一,它是Python在很长一段时间内唯一可用的字符串格式化方法。它的基本语法如下: print("%s %d&…

    python 2023年6月5日
    00
  • 利用Pytorch实现简单的线性回归算法

    以下是关于“利用PyTorch实现简单的线性回归算法”的完整攻略: 简介 线性回归是一种常用的机器学习算法,用于预测连续型变量。在本教程中,我们将介绍如何使用PyTorch实现一个简单的线性回归算法,包括数据预处理、模型构建、模型训练和预测等步骤。 原理 线性回归是一种基于线性模型的回归算法,它假设自变量和因变量之间存在线性关系。在本教程中,我们将使用PyT…

    python 2023年5月14日
    00
  • 对Python3 * 和 ** 运算符详解

    对Python3 * 和 ** 运算符详解 在Python3中,*和**运算符代表不同的意义。下面我们就来详细讲解这两个运算符。 *运算符 *运算符在Python中有多种用法,最常见的用法是将它用于序列类型数据的解包操作。 序列解包 如果想要将一个序列类型的数据拆分成多个单独的对象,可以使用*运算符。 示例代码: lst = [1, 2, 3, 4, 5] …

    python 2023年6月5日
    00
  • 用python爬取豆瓣前一百电影

    用Python爬取豆瓣前100电影的完整攻略 在本攻略中,我们将介绍如何使用Python爬取豆瓣前100电影,并提供两个示例。 步骤1:分析网页 在使用Python爬取豆瓣前100电影之前,我们需要先分析网页。我们可以使用Chrome浏览器的开发者工具分析网页。 以下是分析网页的步骤: 打开Chrome浏览器,进入豆瓣电影排行榜页面。 点击开发者工具,进入开…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部