DC学院学习笔记(九):利用Python进行数据库操作

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 利用Python进行数据库操作

用python进行数据库操作,感觉蛮酷的。

PyMySQL

安装

OK,最新的安装已经支持pip。

pip install pymysql

创建名为user的表格以备后续操作

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `email` varchar(255) COLLATE utf8_bin NOT NULL,
    `password` varchar(255) COLLATE utf8_bin NOT NULL,
    PRIMARY KEY (`id`)
) 
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;

利用Python进行数据库操作

  • 连接MySQL数据库
  • 创建新的数据
  • 数据的调用

连接MySQL数据库

import pymysql.cursors
#使用pymysql指令来连接数据库
connection=pymysql.connect(host='',user='',password='',db='',charset='',cursorclass=pymysql.cursors.DictCursor
)
host:要连接的数据库的IP地址
user:登录的账户名,如果登录的是最高权限账户则为root
password:对应的密码
db:要连接的数据库,如需要访问上节课存储的IRIS数据库,则输入'IRIS'
charset:设置编码格式,如utf8mb4就是一个编码格式
cursorclass:返回到Python的结果,以什么方式存储,如Dict.Cursor是以字典的方式存储

创建新的数据

try:
    #从数据库链接中得到cursor的数据结构
    with connection.cursor() as cursor:
    #在之前建立的user表格基础上,插入新数据,这里使用了一个预编译的小技巧,避免每次都要重复写sql的语句
        sql="INSERT INTO `USERS`(`email`,`password`) VALUES (%s,%s)"
        cursor.execute(sql,('webmaster@python.org','very_secret'))
    #执行到这一行指令时才是真正改变了数据库,之前只是缓存在内存中

    connection.commit()

调用数据

    with connection.cursor() as cursor:
        sql = "SELECT `id`,`password` FROM `user` WHERE `email`=%s"
        cursor.execute(sql,('webmaster@python.org',))
        #只取出一条结果
        result=cursor.fetchone()
        print(result)

#最后别忘了关闭连接
finally:
    connection.close()

结果

{'password': 'very-secret', 'id': 1} 
目录
相关文章
|
20天前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
26 1
|
21天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
112 1
|
30天前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
21 1
|
1月前
|
SQL 关系型数据库 MySQL
Python怎么操作Mysql数据库
Python怎么操作Mysql数据库
49 0
|
2天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
6天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
11天前
|
关系型数据库 MySQL 数据库连接
Python+SQLite数据库实现服务端高并发写入
Python中使用SQLite内存模式实现高并发写入:创建内存数据库连接,建立表格,通过多线程并发写入数据。虽然能避免数据竞争,但由于SQLite内存模式采用锁机制,可能在高并发时引发性能瓶颈。若需更高性能,可选择MySQL或PostgreSQL。
16 0
|
20天前
|
存储 C语言 芯片
【Python】学习笔记day1
【Python】学习笔记day1
33 1
|
27天前
|
算法 搜索推荐 测试技术
python排序算法及优化学习笔记1
python实现的简单的排序算法,以及算法优化,学习笔记1
33 1
|
29天前
|
SQL Java 关系型数据库
在Python中编写Java数据库驱动是不可能的
在Python中编写Java数据库驱动是不可能的