mysqlclient

Day49 mysqlclient操作MySQL关系型数据库

mysqlclient基本使用,查询参数化,使用上下文管理,队列 Queue,使用Queue构建连接池,线程连接池实现

09-06侠课岛    基础入门       

后端/后端/Python 由浅入深入门 6     0     187

总结

1.mysqlclient基本使用

  • 安装mysqlclient的命令行:pip install mysqlclient;

  • 授权用户:grant [权限的名称 select insert ... | all] on 数据库.表名 to 用户名@主机地址 with grant option;

2.什么是cursor

  • cursor是游标对象,用于执行查询和获取结果;

3.游标支持的方法有

  • execute(op[,args]):执行一个数据库的查询和命令;

  • fetchmany(size):获取结果集的下几行务;

  • fetchone():获取结果集的下一行;

  • fetchall():获取结果集中剩下的所有行;

  • rowcount():最近一次execute返回数据的行数或影响的行数;

  • close():关闭游标对象;

3.Queue模块

Queue模块实现了多生产者多消费者队列,尤其适合多线程编程,Queue类中实现了所有需要的锁原语,Queue模块实现了三种类型队列:

  • 第一种,FIFO(先进先出)队列,第一加入队列的任务,被第一个取出;

  • 第二种,LIFO(后进先出)队列,最后加入队列的任务,被第一个取出(操作类似与栈,总是从栈顶取出,这个队列还不清楚内部的实现);

  • 第三种,PriorityQueue(优先级)队列,保持队列数据有序,最小值被先取出;

4.Queue队列对象的方法

  • qsize() :返回队列的大致大小;

  • empty():判断队列是否为空,如果队列为空,返回True,反之False;

  • full():判断是否满了;

  • put():将项目放入队列;

  • put_nowait:相当于put(item, False);

  • get():从队列中删除并返回一个项目;

  • get_nowait():提供了两种方法来支持跟踪守护进程消费者线程是否已完全处理入队任务;

  • task_done():表示以前排队的任务已完成;

  • join():阻止直到队列中的所有项目都已获取并处理完毕;

5.queue模块中的Queue与multiprocessing模块的Queue的区别

  • queue模块中的Queue:是普通的队列模式,先进先出模式,get方法会阻塞请求,直到有数据get出来为止,适用于多线程的场景;

  • multiprocessing模块的Queue:是多进程并发的Queue队列,用于解决多进程间的通信问题;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

6

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?