Python Flask 简明教程(13)--通过pymysql直接操作数据库

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文目录1. 前言2. 创建数据库与表3. 安装pymysql模块4. 连接数据库5. 查询全部数据6. 查询一条数据7. 新增数据8. 删除数据9. 修改数据10. 关闭资源11. 小结

1. 前言

在之前章节中,我们已经讲述过Python如何接受网页参数,以及如何将渲染后的网页发送给浏览器。


在这之后,还有一个非常关键的环节,那就是使用Python操作数据库。我们可以直接对数据库进行增删改查操作,当然也可以进一步通过ORM的方式利用对象操作数据库。


本篇先来介绍下比较基础的数据库操作技术,利用pymysql操作MySQL数据库。之所以选择介绍MySQL数据库,因为它比较流行不是。


2. 创建数据库与表

使用MySQL创建数据库testdb,并在库中创建user表,表结构如下:


CREATE TABLE `user` (

 `id` bigint(20) NOT NULL AUTO_INCREMENT,

 `name` varchar(50) DEFAULT NULL,

 `password` varchar(50) DEFAULT NULL,

 `sex` varchar(50) DEFAULT NULL,

 `age` varchar(50) DEFAULT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


为方便测试,数据库中插入两条数据:



3. 安装pymysql模块

pymysql是Python语言访问MySQL数据库的常用模块,直接通过pip3 install mysql命令安装即可。如下提示即为安装成功:



4. 连接数据库

通过connect方法可以连接数据库,并返回连接对象,代码如下:


import pymysql

con = pymysql.connect(

   host='127.0.0.1',

   user='root',

   password='123456',

   db='testdb',

   charset='utf8'

)

这单代码比较简单,就是通过用户名、密码,连接指定服务器上的指定数据库。


5. 查询全部数据

通过连接可以获取游标,然后通过游标的fetchall方法可以获取全部数据:


# 游标

cursor = con.cursor()


# 查询全部

sql="select * from user"

count=cursor.execute(sql)

users=cursor.fetchall()

for user in users:

   print(user)


控制台运行结果如下:


(1, '张三', '123456', '男', '18')

(2, '李四', '789', '女', '20')


6. 查询一条数据

通过fetchone方法可以获取一条数据:


# 查询一条

sql = "select * from user where id=1"

count = cursor.execute(sql)

user = cursor.fetchone()

print(user)


输出如下,如果用户id不存在,则输出None。


(1, '张三', '123456', '男', '18')

1

7. 新增数据

将sql语句修改为insert即可,很简单。


# 新增数据

name = "赵五"

password = "123456"

sex = "男"

age = "18"

sql = 'insert into user(name,password,sex,age)values("%s","%s","%s","%s")' % (name, password, sex, age)

count=cursor.execute(sql)

con.commit()


需要注意的是,执行修改语句后,必须commit()提交事务,才能生效。


8. 删除数据

同理,构造删除sql即可:


# 删除数据

name="赵五"

sql = 'delete from user where name="%s"' % name

count = cursor.execute(sql)

con.commit()


9. 修改数据

同理,构造修改sql即可:


# 修改数据

name = "张三"

password = "000000"

sex = "男"

age = "18"

sql = 'update user set name="%s",password="%s",sex="%s",age="%s" where name="%s"' % (

   name, password, sex, age,name)

count = cursor.execute(sql)

con.commit()


10. 关闭资源

使用完毕,务必不要忘了关闭游标和连接:


# 关闭

cursor.close()

con.close()


11. 小结

pymysql封装的还是比较简洁的,打开连接-获取游标-执行操作-关闭资源。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
10天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
10天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
|
12天前
|
BI Python
SciPy 教程 之 Scipy 显著性检验 8
本教程介绍SciPy中显著性检验的应用,包括如何利用scipy.stats模块进行显著性检验,以判断样本与总体假设间的差异是否显著。通过示例代码展示了如何使用describe()函数获取数组的统计描述信息,如观测次数、最小最大值、均值、方差等。
22 1
|
13天前
|
Python
SciPy 教程 之 Scipy 显著性检验 6
显著性检验是统计学中用于判断样本与总体假设间是否存在显著差异的方法。SciPy的scipy.stats模块提供了执行显著性检验的工具,如T检验,用于比较两组数据的均值是否来自同一分布。通过ttest_ind()函数,可以获取两样本的t统计量和p值,进而判断差异是否显著。示例代码展示了如何使用该函数进行T检验并输出结果。
17 1
|
15天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
24 1
|
11天前
|
JSON API 数据格式
使用Python和Flask构建简单的Web API
使用Python和Flask构建简单的Web API
|
14天前
|
Python
SciPy 教程 之 Scipy 显著性检验 5
显著性检验用于判断样本与总体假设间的差异是否由随机变异引起,或是假设与真实情况不符所致。SciPy通过scipy.stats模块提供显著性检验功能,P值用于衡量数据接近极端程度,与alpha值对比以决定统计显著性。
21 0
|
16天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
23 0
|
16天前
|
Python
SciPy 教程 之 Scipy 显著性检验 1
本教程介绍Scipy显著性检验,包括统计假设、零假设和备择假设等概念,以及如何使用scipy.stats模块进行显著性检验,以判断样本与总体假设间是否存在显著差异。
22 0