当前位置: 首页 > news >正文

移动应用开发和网站开发wordpress高端企业主题

移动应用开发和网站开发,wordpress高端企业主题,微信小程序开发教程视频,城乡建设局网站操作数据库封装SQL工具类的两种方式 为了更方便的实现基于连接池和pymysql 连接数据库,需开发一个sql工具类来让sql操作更简洁用两张方式来封装SQL工具类 1 )单例模式 封装 db.py 工具类 import pymysql from dbutils.pooled_db import PooledDBclas…

操作数据库封装SQL工具类的两种方式

  • 为了更方便的实现基于连接池和pymysql 连接数据库,需开发一个sql工具类来让sql操作更简洁
  • 用两张方式来封装SQL工具类

1 )单例模式

封装 db.py 工具类

import pymysql
from dbutils.pooled_db import PooledDBclass DBHelper(object):def __init__(self):self.pool = PooledDB(creator=pymysql,maxconnections=5,mincached=2,maxcached=3,blocking=True,setsession=[],ping=0,host='127.0.0.1',port=3306user='root',password='xxxxx',database='userdb',charset='utf8')def get_conn_cursor(self):conn = self.pool.connection()cursor=conn.cursor(pyymsql.cursors.DictCursor)return conn, cursordef close_conn_cursor(self, *args):for item in args:item.close()def exec(self, sql, **kwargs):conn, cursor = self.get_conn_cursor()cursor.execute(sql, kwargs)conn.commit()self.close_conn_cursor(conn, cursor)def fetch_one(self, sql, **kwargs):conn, cursor = self.get_conn_cursor()cursor.execute(sql, kwargs)result = cursor.fetchone()self.cloes_conn_cursor(conn, cursor)return resultdef fetch_all(self, sql, **kwarrgs):conn, cursor = self.get_conn_cursor()cursor.execute(sql, kwargs)result = cursor.fetchall()self.close_conn_cursor(conn, cursor)db = DBHelper()

xxx.py 调用示例

from db import dbv1 = db.fetch_one("select * from d1")
print(v1)v2 = db.fetch_one('select * from d1 where id=%(nid)s ', nid=3)
print(v2)

2 ) 上下文管理

基于 with 上下文管理

with 获取连接:执行sql (执行完毕后,自动将连接交还给连接池)

封装 db_context.py

import threading
import pymysql
from dbutils.pooled_db import PooledDBPOOL = PooledDB(creator=pymysql, # 使用连接数据库的模块maxconnections=5,mincached=2,maxcached=3,blocking=True,setssion=[],ping=0,host='127.0.0.1'port=3306,user='root',password='xxxx',database='userdb',charset='utf8'
)class Connect(object):def __init__(self):self.conn = conn = POOL.connection() # 连接self.cursor = conn.cursor(pymysql.cursors.DictCursor) # 游标def __enter__(self):return selfdef __exit__(self, exc_type, exc_val, exc_tb):self.cursor.close()self.conn.close()def exec(self, sql, **kwargs):self.cursor.execute(sql, kwargs)self.conn.commit()def fetch_one(self, sql, **kwargs):self.cursor.execute(sql, kwargs)result = self.cursor.fetchone()return resultdef fetch_all(self, sql, **kwargs):self.cursor.excute(sql, kwargs)result = self.cursor.fetchall()return result

yyy.py 调用示例

from db_context import Connect### 实例化 对象得到值
with Connect() as obj:ret = obj.fetch_one('select * from d1')print(ret)ret = obj.fetch_one("select * from d1 where id=%(id)s", id=3)print(ret)
http://www.yayakq.cn/news/22405/

相关文章:

  • 兰州网站推广优化wordpress编辑器主题
  • 淘宝联盟网站怎么做网站开发 经常要清理缓存
  • 网站维护怎么学外贸是什么工作
  • 深圳成交型网站建设公司邢台信息港二手车出售
  • 外贸网站镜像常州市建设银行网站
  • 潍坊模板建站平台tinypng图片压缩网站
  • 手机端开发网站模板下载wordpress定时任务
  • 2017两学一做网站网站建设实训小组总结
  • 手机网站建设哪建设部网站注册规划师查询
  • 山东济宁网站建设怎样查看网站点击量
  • 襄樊市网站建设公司手机微网站平台
  • 高中数学 wordpress湛江seo计费管理
  • 建网站需要哪些知识石家庄企业自助建站
  • 北京网站制作官网赣州高端网站开发
  • 重庆建网站诚选快忻科技悉心长沙有什么互联网公司
  • 无锡滨湖住房与城乡建设局网站网站左侧边栏导航代码
  • 信息网站的建设济南华企立方 网站
  • 沈阳市建设公司网站字体中国设计网
  • 骏域网站建设专家电话电子商务网站建设与管理实验
  • 网站建设的需求是什么wordpress上传路径
  • 建设电子商务网站必须首先确定的是jsp网站开发引用文献
  • 河北省建设厅网站官网业务系统国家知识产权商标注册查询官网
  • 做淘宝的人就跟做网站一样百度做网站好吗
  • 福州做商城网站公司网络营销自己做网站
  • 项目网站建设方案云南网站开发建设
  • 建设网站系统胶南网站建设哪家好
  • 电商网站新闻怎么做中网-西安网站建设公司
  • win7本地做网站网站发布服务托管器
  • 手游门户网站模块WordPress巨卡无比
  • 网站开发完了备案做网站订单