flask连接mysql数据库操作增删改查的简单封装函数

本文详细介绍使用Flask框架创建WSGI应用,封装路由配置,以及通过SQLAlchemy进行数据库连接和操作,包括数据的增删改查等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Y17


1、创建python文件夹,命名为app,创建并返回一个WGSI应用程序对象

from flask import Flask
app = Flask(__name__)

# 定义函数封装路由配置
def path(route, fun, *, methods=['GET','POST'], name=None):
    app.add_url_rule(route, view_func=fun, methods=methods, endpoint=name)

2、封装连接数据库操作
from flask_sqlalchemy import SQLAlchemy
from flask4.app import app

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:ysh7776@127.0.0.1/stu'
db = SQLAlchemy(app)

class DBO:
    # 定义函数完成构造对象数据初始化
    def __init__(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)

    # 定义一个数据添加操作
    @classmethod
    def add(self, *args, **kwargs):
        if len(args)>0 and isinstance(*args, list):
            for dict in args[0]:
                obj = self(**dict)
                db.session.add(obj)
        else:
            obj = self(**kwargs)
            db.session.add(obj)
        db.session.commit()
        return obj

    # 定义函数完成数据更新
    def update(self, **kwargs):
        for key, value in kwargs.items():
            if hasattr(self,key):
                setattr(self, key, value)
        db.session.commit()

    # 定义函数完成数据删除
    def delete(self):
        db.session.delete(self)
        db.session.commit()

3、Account模型测试,如下
# 例如若Account是一个模型,有a_account,a_password两个属性列,如下操作。
# 条件添加
# if Account.query.filter(Account.a_account == 'xiaocaicai').first():
#     print('用户名已存在')
# else:
#     obj = Account.add(a_account='xiaocao', a_password='123')
#     print(obj.a_account)

# 添加多条
# Account.add([
#     {'a_account':'xiao1','a_password':'123'},
#     {'a_account':'xiao2','a_password':'123'},
#     {'a_account':'xiao3','a_password':'123'},
# ])

# 添加单条
# Account.add(**{'a_account':'xiao4','a_password':'123'})  或者  Account.add(a_account='xiao4',a_password=123)

# 更新
# Account.query.get(1).update(a_account='eternal')

# 删除
# Account.query.get(1).delete()

具体源代码链接:(flask3~flask5中都有封装文件)
https://pan.baidu.com/s/10_vZeB9cB-ZiftsVhie3NQ  提取码:33nq


个人小结,定有不足,欢迎指点。
谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值