Flask框架实现网页界面对mysql数据的增删改查

这里先在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.

  • 8
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
可以提供如下代码实现基本的增删改查功能: ``` from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) def __repr__(self): return '<User %r>' % self.name # 创建数据库表 db.create_all() # 实现增加用户 @app.route('/add_user') def add_user(): new_user = User(name='John', email='[email protected]') db.session.add(new_user) db.session.commit() return 'New user has been added!' # 实现查询用户 @app.route('/find_user') def find_user(): result = User.query.filter_by(name='John').first() return 'The email address of the user is ' + result.email # 实现修改用户 @app.route('/update_user') def update_user(): user = User.query.filter_by(name='John').first() user.email = '[email protected]' db.session.commit() return 'The email address of the user has been updated!' # 实现删除用户 @app.route('/delete_user') def delete_user(): user = User.query.filter_by(name='John').first() db.session.delete(user) db.session.commit() return 'The user has been deleted!' if __name__ == '__main__': app.run(debug=True) ``` 上述代码实现了基本的增删改查功能,使用flask_sqlalchemy框架操作SQLite数据库。其中,创建了User模型类,包含id、name、email三个字段;同时也包含了增加用户、查询用户、修改用户、删除用户四个接口。在实现上述功能之前,需要先安装相应的依赖包,如需使用MySQL需要另行配置数据库连接信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值