题记
用python实现mysql数据库的增删改查,以下是具体的代码和操作步骤
安装flask模块
pip install flask
安装mysql.connector模块
pip install mysql-connector-python
编写app.py文件
app.py文件如下:
为什么显示不完整???
# jsonify是Flask提供的用于生成JSON响应的函数
# mysql.connector是一个用于连接和操作MySQL数据库的Python库
from flask import Flask, request, render_template, jsonify
import mysql.connector
app = Flask(__name__)
# 连接到MySQL数据库
# 填写host,用户名,密码,数据库名
db = mysql.connector.connect(
host="localhost",
user="root",
password="123456",
database="test"
)
# 创建游标对象
cursor = db.cursor()
# 创建表格(如果不存在)
cursor.execute("CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
@app.route('/')
def index():
# 查询数据库中的所有数据,cursor是用来执行SQL语句的游标对象
# cursor.fetchall()方法用于获取查询结果的所有行数据,并将其存储在students变量中
# render_template函数用来渲染index.html模板文件
# 在index.html中,通过在模板中使用{% for student in students %}和{% endfor %}来遍历students列表
cursor.execute("SELECT * FROM students")
students = cursor.fetchall()
return render_template('index.html', students=students)
@app.route('/add', methods=['POST'])
def add():
# request.form属性可以获取表单数据
name = request.form['name']
age = request.form['age']
# 向数据库插入数据
# %s是占位符,用于表示后面的值将会被替换
# values变量是一个元组,包含了要插入的name和age的值
# 使用db.commit()方法提交事务,将数据真正地插入到数据库中
sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
values = (name, age)
cursor.execute(sql, values)
db.commit()
return "数据已成功添加到数据库!"
# <int:id>用于指定id
@app.route('/delete/<int:id>', methods=['GET'])
def delete(id):
# 删除指定ID的数据
sql = "DELETE FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
db.commit()
return "数据已成功删除!"
@app.route('/update/<int:id>', methods=['GET'])
def update1(id):
sql = "SELECT * FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
# 使用cursor.fetchone()方法获取查询结果的第一行数据,并将其存储在student变量中
student = cursor.fetchone()
return render_template('update.html',student=student)
@app.route('/update/<int:id>', methods=['POST'])
def update(id):
name = request.form['name']
age = request.form['age']
# 更新指定ID的数据
sql = "UPDATE students SET name = %s, age = %s WHERE id = %s"
values = (name, age, id)
cursor.execute(sql, values)
db.commit()
return "数据已成功更新!"
@app.route('/select/<int:id>', methods=['GET'])
def select(id):
# 查询指定ID的数据
sql = "SELECT * FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
student = cursor.fetchone()
# jsonify()函数将student转换为JSON格式
if student:
return jsonify(student)
else:
return "未找到匹配的数据!"
if __name__ == '__main__':
app.run()
# jsonify是Flask提供的用于生成JSON响应的函数
# mysql.connector是一个用于连接和操作MySQL数据库的Python库
from flask import Flask, request, render_template, jsonify
import mysql.connector
app = Flask(__name__)
# 连接到MySQL数据库
# 填写host,用户名,密码,数据库名
db = mysql.connector.connect(
host="localhost",
user="root",
password="123456",
database="test"
)
# 创建游标对象
cursor = db.cursor()
# 创建表格(如果不存在)
cursor.execute("CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
@app.route('/')
def index():
# 查询数据库中的所有数据,cursor是用来执行SQL语句的游标对象
# cursor.fetchall()方法用于获取查询结果的所有行数据,并将其存储在students变量中
# render_template函数用来渲染index.html模板文件
# 在index.html中,通过在模板中使用{% for student in students %}和{% endfor %}来遍历students列表
cursor.execute("SELECT * FROM students")
students = cursor.fetchall()
return render_template('index.html', students=students)
@app.route('/add', methods=['POST'])
def add():
# request.form属性可以获取表单数据
name = request.form['name']
age = request.form['age']
# 向数据库插入数据
# %s是占位符,用于表示后面的值将会被替换
# values变量是一个元组,包含了要插入的name和age的值
# 使用db.commit()方法提交事务,将数据真正地插入到数据库中
sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
values = (name, age)
cursor.execute(sql, values)
db.commit()
return "数据已成功添加到数据库!"
# <int:id>用于指定id
@app.route('/delete/<int:id>', methods=['GET'])
def delete(id):
# 删除指定ID的数据
sql = "DELETE FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
db.commit()
return "数据已成功删除!"
@app.route('/update/<int:id>', methods=['GET'])
def update1(id):
sql = "SELECT * FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
# 使用cursor.fetchone()方法获取查询结果的第一行数据,并将其存储在student变量中
student = cursor.fetchone()
return render_template('update.html',student=student)
@app.route('/update/<int:id>', methods=['POST'])
def update(id):
name = request.form['name']
age = request.form['age']
# 更新指定ID的数据
sql = "UPDATE students SET name = %s, age = %s WHERE id = %s"
values = (name, age, id)
cursor.execute(sql, values)
db.commit()
return "数据已成功更新!"
@app.route('/select/<int:id>', methods=['GET'])
def select(id):
# 查询指定ID的数据
sql = "SELECT * FROM students WHERE id = %s"
values = (id,)
cursor.execute(sql, values)
student = cursor.fetchone()
# jsonify()函数将student转换为JSON格式
if student:
return jsonify(student)
else:
return "未找到匹配的数据!"
if __name__ == '__main__':
app.run()
编写index.html文件
index.html文件要放在templates文件夹下
index.html文件如下:
<!DOCTYPE html> <html> <head> <title>学生管理</title> </head> <body> <h1>学生管理</h1> <table> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> {% for student in students %} <tr> <td>{{ student[0] }}</td> <td>{{ student[1] }}</td> <td>{{ student[2] }}</td> <td> <a href="/delete/{{ student[0] }}">删除</a> <a href="/update/{{ student[0] }}">修改</a> <a href="/select/{{ student[0] }}">搜索</a> </td> </tr> {% endfor %} </table> <br> <h2>新增学生</h2> <form action="/add" method="POST"> <label for="name">姓名:</label> <input type="text" id="name" name="name"><br><br> <label for="age">年龄:</label> <input type="text" id="age" name="age"><br><br> <input type="submit" value="Add"> </form> </body> </html>
编写update.html文件
update文件如下:
<!DOCTYPE html> <html> <head> <title>修改学生</title> </head> <body> <h1>修改学生</h1> <!--{{ student[0] }}是一个占位符,将会被具体的学生ID替换--> <form action="/update/{{ student[0] }}" method="POST"> <label for="name">姓名:</label> <input type="text" id="name" name="name"><br><br> <label for="age">年龄:</label> <input type="text" id="age" name="age"><br><br> <input type="submit" value="Add"> </form> </body> </html>
执行程序
启动命令:
python app.py
访问地址:
localhost:5000
展示图
觉得有用可以收藏或点赞!