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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 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
相关文章
|
6天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
15 9
|
1天前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
101 64
|
1天前
|
数据采集 存储 数据挖掘
深入探索 Python 爬虫:高级技术与实战应用
本文介绍了Python爬虫的高级技术,涵盖并发处理、反爬虫策略(如验证码识别与模拟登录)及数据存储与处理方法。通过asyncio库实现异步爬虫,提升效率;利用tesseract和requests库应对反爬措施;借助SQLAlchemy和pandas进行数据存储与分析。实战部分展示了如何爬取电商网站的商品信息及新闻网站的文章内容。提醒读者在实际应用中需遵守法律法规。
100 66
|
3天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
15 3
|
5天前
|
存储 索引 Python
python中的数据容器
python中的数据容器
|
5天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
17 0
|
6天前
|
数据挖掘 Python
Python数据挖掘编程基础8
在Python中,默认环境下并不会加载所有功能,需要手动导入库以增强功能。Python内置了诸多强大库,例如`math`库可用于复杂数学运算。导入库不仅限于`import 库名`,还可以通过别名简化调用,如`import math as m`;也可指定导入库中的特定函数,如`from math import exp as e`;甚至直接导入库中所有函数`from math import *`。但需注意,后者可能引发命名冲突。读者可通过`help('modules')`查看已安装模块。
12 0
|
6天前
|
人工智能 数据挖掘 Serverless
Python数据挖掘编程基础
函数式编程中的`reduce`函数用于对可迭代对象中的元素进行累积计算,不同于逐一遍历的`map`函数。例如,在Python3中,计算n的阶乘可以使用`reduce`(需从`funtools`库导入)实现,也可用循环命令完成。另一方面,`filter`函数则像一个过滤器,用于筛选列表中符合条件的元素,同样地功能也可以通过列表解析来实现。使用这些函数不仅使代码更加简洁,而且由于其内部循环机制,执行效率通常高于普通的`for`或`while`循环。
11 0
|
6天前
|
分布式计算 数据挖掘 Serverless
Python数据挖掘编程基础6
函数式编程(Functional Programming)是一种编程范型,它将计算机运算视为数学函数计算,避免程序状态及易变对象的影响。在Python中,函数式编程主要通过`lambda`、`map`、`reduce`、`filter`等函数实现。例如,对于列表`a=[5,6,7]`,可通过列表解析`b=[i+3 for i in a]`或`map`函数`b=map(lambda x:x+3, a)`实现元素加3的操作,两者输出均为`[8,9,10]`。尽管列表解析代码简洁,但其本质仍是for循环,在Python中效率较低;而`map`函数不仅功能相同,且执行效率更高。
6 0
|
6天前
|
数据挖掘 Python
Python数据挖掘编程基础5
函数是Python中用于提高代码效率和减少冗余的基本数据结构,通过封装程序逻辑实现结构化编程。用户可通过自定义或函数式编程方式设计函数。在Python中,使用`def`关键字定义函数,如`def pea(x): return x+1`,且其返回值形式多样,可为列表或多个值。此外,Python还支持使用`lambda`定义简洁的行内函数,例如`c=lambda x:x+1`。
12 0
下一篇
无影云桌面