Python对MySQL的增删改查
通过Python连接MySQL
"""
连接MySQL数据库,并进行增删改查,同时查询了MySQL版本号,并做了动态注册的账号,实现过程:先向userinfo当中添加account、password新字段,接着通过insert插入数据,要注意的是,若是其他字段设置为not null,则必须插入内容。
"""
import pymysql.cursors
# 尝试连接数据库
try:
connect = pymysql.Connect(
host='localhost',
port=3307,
user='root',
password='123456',
db='school',
charset='utf8'
)
print("数据库连接成功")
except pymysql.err.OperationalError as e:
print(f"数据库连接失败: {e}")
创建游标用于解析sql代码
cursor = connect.cursor()
在Python中编写sql语句,并创建userinfo表
其中有ID字段为自动增长、主键、整数,uname字段为字符串、非空,uage字段为整数
sql = """
CREATE TABLE IF NOT EXISTS userinfo(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(20) NOT NULL,
uage INT
);
"""
cursor.execute(sql)
print("表创建成功")
向表中插入数据
sql2 = "INSERT INTO userinfo(uname, uage) VALUES (%s, %s)"
data1 = ('ann', 18)
data2 = ('alice', 28)
data3 = ('rose', 20)
for data in [data1, data2, data3]:
cursor.execute(sql2, data)
connect.commit()
print('数据插入成功')
更新数据
将年龄为18的同学姓名改为“oi小鬼”
sql3 = "UPDATE userinfo SET uname = %s WHERE uage = %s"
data_update = ('oi小鬼', 18)
cursor.execute(sql3, data_update)
connect.commit()
print('数据修改成功')
查询数据
其中fetchall()用于返回全部数据、fetchone()用于返回查询结果的第一条数据、fetchmany(n)用于返回查询结果的前n条数据。
sql4 = "SELECT * FROM userinfo"
cursor.execute(sql4)
rows = cursor.fetchall()
for row in rows:
print("ID:%s\t姓名:%s\t年龄:%s\t" % (row[0], row[1], row[2]))
查询MySQL数据库版本
cursor.execute("SELECT VERSION()")
version = cursor.fetchone()
print("MySQL数据库版本是:%s" % version)
最后关闭连接释放资源
cursor.close()
connect.close()
print("数据库连接已关闭")
前后端结合小案例
在制作登录网页时,通常会将用户的注册信息存放在后端数据库MySQL中,当登录时,再通过前端发送请求,请求用户的账号密码进行核对,若是密码输入正确,则登录成功,若是错误则无法成功登录。
下面是基于Python的FLASK框架编写的前后端结合注册页面的小案例,用户输入信息点击注册后,用户数据会存入对应的数据库当中。
项目文件结构
app.py
from flask import Flask