这里先在mysql里创建好库和表,简单创一个
1.构建网页首页----sqldata.html
根据表的字段信息搭建简单的HTML首页
<!DOCTYPE html>
<html lang="cn-zh">
<head>
<meta charset="UTF-8">
<title>数据列表</title>
</head>
<body>
<center>
<h1>mysql数据列表</h1>
<a href="/add/">添加操作</a>
<hr>
<table border="1px" width="400px">
<tr style="text-align:center">
<th>学号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>班级</th>
<th>操作</th>
</tr>
{% for i in userlist %}
<tr style="text-align:center">
<td>{{ i.id }}</td>
<td>{{ i.name }}</td>
<td>{{ i.age }}</td>
<td>{{ i.sex }}</td>
<td>{{ i.class }}</td>
<td><a href="/del?id={{ i.id }}">删除</a> | <a href="/cha?id={{ i.id }}">更改</a></td>
</tr>
{% endfor %}
</table>
</center>
</body>
</html>
2.添加操作的界面----add.html
<!DOCTYPE html>
<html lang="cn-zh">
<head>
<meta charset="UTF-8">
<title>添加操作</title>
</head>
<body>
<center>
<form action="/adds/" method="post">
<h1>请输入添加的信息</h1>
<table>
<tr>
<td>学号:</td>
<td><input type="text" name="id"><br></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"><br></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age"><br></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="text" name="sex"><br></td>
</tr>
<tr>
<td>班级:</td>
<td><input type="text" name="class"><br></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" ,value="确定"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
3.更改数据的界面----cha.html
<!DOCTYPE html>
<html lang="cn-zh">
<head>
<meta charset="UTF-8">
<title>更改操作</title>
</head>
<body>
<center>
<h1>更改需要更改的信息</h1>
<form action="/chas" method="post">
<table>
{% for i in userlist %}
<tr>
<td>学号:<input type="text" name="id" readonly="readonly" value="{{ i.id }}"><br></td>
</tr>
<tr>
<td>姓名:<input type="text" name="name" value="{{ i.name }}"><br></td>
</tr>
<tr>
<td>年龄:<input type="text" name="age" value="{{ i.age }}"><br></td>
</tr>
<tr>
<td>性别:<input type="text" name="sex" value="{{ i.sex }}"><br></td>
</tr>
<tr>
<td>班级:<input type="text" name="banji" value="{{ i.class }}"><br></td>
</tr>
{% endfor %}
<tr>
<td colspan="2" align="center"><input type="submit" ,value="确定"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
4.主函数----web.py
from flask import Flask,render_template,request
import pymysql
app = Flask (__name__)
# 封装SQL语句函数
def func(sql,m='r'):
py = pymysql.connect ('127.0.0.1','root','','test',charset="utf8",cursorclass=pymysql.cursors.DictCursor)
cursor = py.cursor ()
try:
cursor.execute (sql)
if m == 'r':
data = cursor.fetchall ()
elif m == 'w':
py.commit ()
data = cursor.rowcount
except:
data = False
py.rollback ()
py.close ()
return data
# 首页,将mysql中表的值读出并传到网页----查
@app.route ('/')
def index():
data = func ('select * from stu')
return render_template ('sqldata.html',userlist=data)
# 返回到添加操作的界面
@app.route ("/add/")
def ad():
return render_template ('add.html')
# 接受添加的数据,写入数据库----增
@app.route ("/adds/",methods=["POST"]) # 注意post大写,因为post是通过form.data传数据所以下面用request.form
def adds():
data = dict (request.form)
print (data)
sql = "insert into stu values ('{id}','{name}','{age}','{sex}','{class}')".format (**data)
res = func (sql,m='w')
if res:
return '<script>alert("添加成功");location.href="/";</script>'
else:
return '<script>alert("添加失败");location.href="/";</script>'
# 返回到更改界面
@app.route ('/cha')
def ch():
idd = request.args.get ('id')
data = func (f'select * from stu where id={idd}')
return render_template ('cha.html',userlist=data)
# 检察更改的数据并更新数据库----改
@app.route ('/chas',methods=["POST"])
def chas():
data = dict (request.form)
res = func ("update stu set name='{name}',age='{age}',sex='{sex}',class='{banji}' where id={id}".format (**data),
m='w')
if res:
return '<script>alert("更新成功");location.href="/";</script>'
else:
return '<script>alert("未更新");location.href="/";</script>'
# 删除数据----删
@app.route ('/del')
def de():
id = request.args.get ('id')
res = func (f'delete from stu where id={id}',m='w')
if res:
return '<script>alert("删除成功");location.href="/";</script>'
else:
return '<script>alert("删除失败");location.href="/";</script>'
# 运行
if __name__ == '__main__':
app.run (debug=True,host='127.0.0.1',port='8080')
运行主程序
运行主函数后进入网页,127.0.0.1代表本地
这里实验的时候已经插入一些数据,主页如下
点击添加操作
这里添加了另一个加弟弟的信息,然后去mysql里查看
两个弟弟,添加成功
剩下的改和删也完全ok.