数据持久化技术(Python)的使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: - 传统数据库连接方式:mysql(PyMySQL)- ORM 模型:SQLAlchemy MyBatis、 Hibernate## PyMySQL 安装:```pip install pymysql```## 简单使用 利用 pymysql.connect 建立数据库连接并执行 SQL 命令(需要提前搭建好数据库):```import pymysqldb =
更多技术文章分享和免费资料领取
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=Aliyun&timestamp=1651732686
  • 传统数据库连接方式:mysql(PyMySQL)
  • ORM 模型:SQLAlchemy MyBatis、 Hibernate

PyMySQL

安装:

pip install pymysql

简单使用

利用 pymysql.connect 建立数据库连接并执行 SQL 命令(需要提前搭建好数据库):

import pymysql

db = pymysql.connect(
    # mysql 地址
    host='182.92.129.158',
    # 账号和密码
    user='tmp',
    password='ceshiren.com',
    # 数据库
    db='tmp',
    charset='utf8mb4'
)

if __name__ == '__main__':
    with db.cursor() as cursor:
        # 查看数据库中有多少表
        sql = "show tables;"
        # 执行 sql 语句
        cursor.execute(sql)
        # 查看所有数据
        print(cursor.fetchall())
        # 查询 name = aaaaaa 的数据
        sql = "select * from test_case_table where name=%s"
        cursor.execute(sql, ["aaaaaa"])
        print(cursor.fetchall())
(('test_case_table',),)
(('aaaaaa', '新的测试用例', 'test_hello.py', 'def test'),)

ORM

对象关系映射( object-relational mapping) 利用语言特性,操作数据库,比如对 Python 对象的操作,操作内容会映射到数据库里。
SQLALchemy 是 Python 编程语言下的一款 ORM 框架,该框架建立在数据库 API 之上,使用关系对象映射进行数据库操作。

安装

pip3 install SQLAlchemy

安装完成后可创建数据库连接:

engine = create_engine("mysql+pymysql://tmp:ceshiren.com@182.92.129.158/tmp?charset=utf8",echo=True,)

1.echo: 当设置为 True 时会将 ORM 语句转化为 SQL 语句打印,一般 debug 的时候可用。
2.字段解释:
3.mysql+pymysql:连接方式,采用 pymysql 。
4.tmp:ceshiren.com:用户名:密码。
5.182.92.129.158/tmp:数据库地址和数据库名称。

创建数据库

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base

engine = create_engine("mysql+pymysql://tmp:ceshiren.com@182.92.129.158/tmp?charset=utf8",
                       echo=True,
                       )
# 其子类将 Python 类和数据库表关联映射起来
Base = declarative_base()
# 继承 Base
class Users(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True)
    name = Column(String(64), unique=True)

    def __init__(self, name):
        self.name = name

if __name__ == '__main__':
    # 生成数据库表,如果有此库会忽略
    Base.metadata.create_all(engine)

declarative_base() 是 SQLALchemy 内部封装的一个方法,可以让其子类将 Python 类和数据库表关联映射起来。

增和查

SQLALchemy 使用 Session 用于创建程序和数据库之间的会话,通过 Session 对象可实现对数据的增删改查。

from sqlalchemy.orm import sessionmaker
# 创建session
Session = sessionmaker(bind=engine)
session = Session()
# 添加新数据
add_user = Users("student1")
# 提交
session.add(add_user)
session.commit()
# 查询
result = session.query(Users).filter_by(name="student1").first()
print(result.id, result.name)

上述代码新增数据后进行查询,结果如下:

1 student1

数据持久化技术就先介绍到这里,大家可以试着做一下练习,
我们后面会讲跨平台API对接,请持续关注哦~

原文链接

⬇️ 点击“下方链接”,提升测试核心竞争力!+V~ ceshiren001
更多技术文章分享和免费资料领取
https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=Aliyun&timestamp=1651732686
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
22天前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
30 2
|
22天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
27 1
|
23天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
23天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
24天前
|
开发框架 开发者 Python
探索Python中的装饰器:技术感悟与实践
【10月更文挑战第31天】 在编程世界中,装饰器是Python中一种强大的工具,它允许我们在不修改函数代码的情况下增强函数的功能。本文将通过浅显易懂的方式,带你了解装饰器的概念、实现原理及其在实际开发中的应用。我们将一起探索如何利用装饰器简化代码、提高可读性和复用性,同时也会分享一些个人的技术感悟,帮助你更好地掌握这项技术。
32 2
|
28天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
29天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。
|
1月前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
18 1
|
2月前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
61 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式