flask連線mysql資料庫操作增刪改查的簡單封裝函式
阿新 • • 發佈:2018-11-09
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
個人小結,定有不足,歡迎指點。
謝謝~