数据持久化技术(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 =
  • 传统数据库连接方式: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对接,请持续关注哦~

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