欢迎进入jdb电子官方网站!

咨询热线:400-156-4567

3.Python-用Python实现MySQL数据库的增删改查

发布时间:2024-04-02 01:03:43

题记

        用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 "数据已成功添加到数据库!"

# 用于指定id
@app.route('/delete/', 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/', 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/', 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/', 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 "数据已成功添加到数据库!"

# 用于指定id
@app.route('/delete/', 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/', 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/', 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/', 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文件如下: 




    学生管理


    

学生管理

{% for student in students %} {% endfor %}
ID 姓名 年龄 操作
{{ student[0] }} {{ student[1] }} {{ student[2] }} 删除 修改 搜索

新增学生








    学生管理


    

学生管理

{% for student in students %} {% endfor %}
ID 姓名 年龄 操作
{{ student[0] }} {{ student[1] }} {{ student[2] }} 删除 修改 搜索

新增学生





 

 编写update.html文件

        update文件如下: 




    修改学生


    

修改学生








    修改学生


    

修改学生





 

执行程序

        启动命令:

        python app.py 

        访问地址:

        localhost:5000 

展示图 

 觉得有用可以收藏或点赞!