1. 程式人生 > >flask連線mysql資料庫操作增刪改查的簡單封裝函式

flask連線mysql資料庫操作增刪改查的簡單封裝函式

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:[email protected]/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


個人小結,定有不足,歡迎指點。
謝謝~