上次有同窗问到,Python的持久化怎么处理。此次就带你们来体验一下,Python访问数据库。python
如今的数据库分类不少,以mysql为例。须要到mysql的官网上去下载mysql。 Mysql下载路径mysql
下载打开安装包,勾选常见的安装位置等配置之后,设置数据库用户名密码,启动mysql就能够了。 mac上的启动能够沿着如下路径开启: 系统偏好设置------Mysql------开启。如图所示: sql
Python3的数据库模块能够是pymysql。安装能够经过pip安装: mongodb
建立数据库能够下载图形客户端(mysql workbench或者navicat等等),也能够经过Python代码。 这里咱们使用Python代码来处理:数据库
建数据库,库名为awesome;建表,表名blogs;共有三列,列名 id,user_id, namefetch
import pymysql
# 建库和建表
con = pymysql.connect(host='localhost', user='root',
passwd='123456', charset='utf8')
cur = con.cursor()
# 开始建库
cur.execute("create database awesome character set utf8;")
# 使用库
cur.execute("use awesome;")
# 建表
cur.execute("create table blogs(id char(20),user_id char(20),name char(20),)character set utf8;")
复制代码
查询表,表名blogsspa
# 1.创建链接,用户root 密码mysql123456 dbname:awesome
db = pymysql.connect("localhost","root","mysql123456","awesome")
# 获取游标
cur = db.cursor()
# sql查询语句 表名blogs
sql = "select * from blogs"
try:
cur.execute(sql) # 执行sql语句
results = cur.fetchall() # 获取查询的全部记录
print("id", "user_id", "name")
# 遍历结果
for row in results:
id = row[0]
user_id = row[1]
name = row[4]
print(id, name, user_id)
except Exception as e:
raise e
finally:
db.close() # 关闭链接
复制代码
往表blog里插入一行数据(id,user_id,name) = ("test_id",'test_user_id','test_name')code
# 2.插入操做
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_insert = db.cursor()
# sql插入语句 表名blogs
sql_insert ="""insert into blogs(id,user_id,name) values ("test_id",'test_user_id','test_name')"""
try:
cur_insert.execute(sql_insert)
# 提交
db.commit()
print('开始数据库插入操做')
except Exception as e:
db.rollback()
print('数据库插入操做错误回滚')
finally:
db.close()
复制代码
更新user_id = "test_user_id" 的行,将其 name 更新为 "update_test_name"cdn
# 3.更新操做
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_update = db.cursor()
sql_update = "update awesome.blogs set name = '%s' where user_id = '%s'"
try:
cur_update.execute(sql_update % ("update_test_name", "test_user_id"))
# 提交
db.commit()
print('开始数据库更新操做')
except Exception as e:
db.rollback()
print('数据库更新操做错误回滚')
finally:
db.close()
复制代码
删除 name = "update_test_name" 的行blog
# 4.删除操做
db = pymysql.connect("localhost","root","mysql12345","awesome")
cur_delete = db.cursor()
sql_delete = "delete from awesome.blogs where name = '%s'"
try:
cur_delete.execute(sql_delete % ("update_test_name")) # 像sql语句传递参数
# 提交
db.commit()
print('开始数据库删除操做')
except Exception as e:
db.rollback()
print('数据库删除操做错误回滚')
finally:
db.close()
复制代码
这里以mysql为例,若是使用mongodb等其余数据库,使用方法也是相似的,你们能够触类旁通。