先说一下前提工作,创建一个mydb的库,其中有一个users的表,csdn中的文件如下
其中index.html是一个简单的主页
具体代码为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户信息</title>
</head>
<body>
<ul>
<li><a href="./cgi-bin/list.py">用户列表</a></li>
<li><a href="add.html">用户添加</a></li>
</ul>
</body>
</html>
add.html的内容为:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>添加用户</title>
</head>
<body>
<form action="./cgi-bin/add.py" method="post">
用户名:<input type="text" name="username"><br>
性别:<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女<br>
年龄:<input type="text" name="age"><br>
电话:<input type="text" name="phone"><br>
<button>提交</button>
</form>
</body>
</html>
cgi-bin文件夹下的文件为:
其中add.py中的代码为:
#! /usr/bin/env python3
import pymysql,cgi
print('Content-type:text/html;charset=utf-8')
print()
# 接收数据
fs = cgi.FieldStorage()
# print(fs)
data = {}
for i in fs:
data[i] = fs[i].value
# print(data[i])
# 打开数据库链接
db = pymysql.connect('127.0.0.1','root','123456','mydb',charset='utf8')
# 使用cursor()创建一个游标对象
cursor = db.cursor()
# sql语句
sql = 'insert into users(username,sex,age,phone) values("{username}","{sex}","{age}","{phone}")'.format(username=data['username'],sex=data['sex'],age=data['age'],phone=data['phone'])
# print(sql)
try:
cursor.execute(sql)
db.commit()
print('<script>alert("添加成功");location.href="/cgi-bin/list.py"</script>')
except:
db.rollback()
print('<script>alert("添加失败");location.href="/add.html"</script>')
db.close()
list.py中的代码为:
#! /usr/bin/env python3
import pymysql,cgi
print('Content-type:text/html;charset=utf-8')
print()
# 连接数据库
db = pymysql.connect('127.0.0.1','root','123456','mydb',charset='utf8')
# 创建一个游标对象
cursor = db.cursor()
# 执行sql语句
sql = 'select * from users'
cursor.execute(sql)
# 使用fetchall()获取全部数据
data = cursor.fetchall()
trs = ''
for i in data:
trs +='''
<tr>
<td>{ID}</td>
<td>{name}</td>
<td>{sex}</td>
<td>{age}</td>
<td>{phone}</td>
<td>
<a href="">删除</a>
<a href="">修改</a>
</td>
</tr>
'''.format(ID=i[0],name=i[1],sex=i[2],age=i[3],phone=i[4])
html='''
<center>
<table>
<tr>
<td>ID</td>
<td>用户名</td>
<td>性别</td>
<td>年龄</td>
<td>电话</td>
<td>操作</td>
</tr>
{}
</table>
</center>
'''.format(trs)
print(html)
我的服务器端口是8080,所以在浏览器中数据127.0.0.1:8080
点击用户列表页的时候,会自动跳转到list.py文件中,会显示出数据库中的用户的具体信息:
在index.html中点击用户添加会跳转到add.html中:
输入用户信息后,点击提交,会跳转到list.py文件中,添加失败后,会跳转到add.html 文件中,代码在上面