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

题记

        用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>
<!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>
<!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 

展示图 

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年11月14日
下一篇 2023年11月14日

相关推荐