- 安装PyMySQL包:通过pip安装(我以往的文章有写怎么用pip安装模块),具体的指令是pip install PyMySQL
import pymysql
# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect("localhost", "root", "123456", "mrsoft")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()
输出MySQL数据库的版本
Database version : 5.6.22-log
2. 创建数据表
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "123456", "mrsoft")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS books")
# 使用预处理语句创建表
sql = """
CREATE TABLE books (
id int(8) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
category varchar(50) NOT NULL,
price decimal(10,2) DEFAULT NULL,
publish_time date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
"""
# 执行SQL语句
cursor.execute(sql)
# 关闭数据库连接
db.close()
- 操作MySQL数据表
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost", "root", "123456", "mrsoft",charset="utf8")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 数据列表
data = [("计算机操作系统",'计算机基础','79.80','2018-5-20'),
("计算机组成原理",'计算机基础','69.80','2018-6-18'),
("计算机网络",'计算机基础','69.80','2017-5-21'),
("数据结构",'c语言','79.80','2016-5-21'),
("离散数学",'数学 ','69.80','2017-5-21'),
]
try:
# 执行sql语句,插入多条数据
cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
# 提交数据
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
- 记录用户登日记
import time
import pymysql
def show_info():
print('''输入提示数字,执行相应操作
0:退出
1:查看登录日志
''')
def init_mysql():
db = pymysql.connect("localhost", "root", "123456", "mrsoft",charset="utf8")
cursor = db.cursor()
return cursor,db
def save_data(username,password):
"""
存入MySQL数据库
:param username: 用户名
:param password: 密码
"""
cursor,db = init_mysql()
#如果login不存在则创建一个login
cursor.execute("create table if not exists login(username varchar(50) NOT NULL,\
password varchar(50) NOT NULL,\
create_time varchar(50) NOT NULL)")
try:
create_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
cursor.execute("insert into login(username,password,create_time) values( % s, % s, % s)" ,(username,password,create_time))
db.commit()
except:
db.rollback()
db.close()
def get_loginfo():
cursor, db = init_mysql()
cursor.execute('select username,create_time from login')
results = cursor.fetchall()
db.close()
return results
if __name__ == "__main__":
# 输入用户名
username = input('请输入用户名:')
# 检测用户名
while len(username) < 2 :
print('用户名长度应不少于2位')
username = input('请输入用户名:')
# 输入密码
password = input('请输入密码:')
# 检测密码
while len(password) < 6 :
print('密码长度应不少于6位')
password = input('请输入密码:')
print('登录成功')
save_data(username,password) # 写入日志
show_info() # 提示信息
num = int(input('输入操作数字:')) # 输入数字
# 菜单功能
while True:
if num == 0:
print('退出成功')
break
elif num == 1:
print('查看登录日志')
results = get_loginfo()
for result in results:
print("用户名:{} 登录时间:{}\r".format(result[0],result[1]))
show_info()
num = int(input('输入操作数字:'))
else:
print('您输入的数字有误')
show_info()
num = int(input('输入操作数字:'))