数据库开发

比较有名的模块有:

MySQLdb 支持Python2,不知道Python3,已停止更新

mysqlclient 在MySQLdb的基础上支持Python3

MYSQL官方Connector 网址:https://dev.mysql.com/downloads/

pymysql 语法兼容MySQLdb,使用纯Python写的Mysql客户端库,支持Python3

pymysql与MySQLdb模块

MySQLdb的安装命令是:pip install mysqlclient

import pymysql

import MySQLdb

conn = None

cursor = None

try:

# conn = pymysql.connect(host='localhost', user='user', password='password', database='test', port=3306) # 用pymysql建立mysql连接

conn = MySQLdb.connect(host='localhost', user='user', password='password', database='db_test', port=3306) # 用MySQLdb建立mysql连接

print(type(conn), conn)

conn.ping(False) # ping不通抛异常,True则重连

# with conn as cursor: # pymysql支持上下文获得游标

cursor = conn.cursor() # 获得游标

sql = """select * from tb_test"""

rows = cursor.execute(sql) # 执行sql语句

print(rows) # 返回行数

print('1', cursor.rownumber, cursor.rowcount) # 游标当前行数,总行数

print(cursor.fetchone()) # 返回一行

print('2', cursor.rownumber, cursor.rowcount)

print(cursor.fetchmany(2)) # 返回指定若干行

print('3', cursor.rownumber, cursor.rowcount)

cursor.rownumber = 0 # 设置游标行数,支持正负数

print(cursor.fetchall()) # 返回游标后的所有行

print('4', cursor.rownumber, cursor.rowcount)

conn.commit() # 进行增删改时,需要提交事务,查不用

except:

conn.rollback() # 事务回滚

finally:

if cursor:

cursor.close() # 关闭游标

if conn:

conn.close() # 关闭数据库连接

元编程

写代码来生成需要的代码,这就是元编程

类构建

class Test(object):

a = 1

def __init__(self, b):

self.b = b

def init(self, b):

self.b = b

test = type('test', (object,), {'__init__': init})

test.a = 1

print(type(Test), Test, Test.mro(), Test.__dict__)

print(type(test), test, test.mro(), Test.__dict__)

t1 = Test(3)

t2 = test(3)

print(t1.a)

print(t2.a)

print(type(t1), t1, t1.__dict__)

print(type(t2), t2, t2.__dict__)

# test与Test结构一样

构建元类

class A(type): # 元类

def __new__(cls, name, bases, dicts):

print(cls)

print(name)

print(bases)

print(dicts)

return super().__new__(cls, name, bases, dicts)

class B(A): # 继承父类

pass

class C(metaclass=A): # 使用元类A

pass

class D(C): # 继承父类C,使用元类A

pass

E = A('E', (C,), {})

print(type(A), A.__bases__) # (,)

print(type(B), B.__bases__) # (,)

print(type(C), C.__bases__, C.mro()) # (,)

print(type(D), D.__bases__, D.mro()) # (,)

print(type(E), E.__bases__, E.mro()) # (,)

python基础编程语法-Python基础及语法(十三)相关推荐

  1. C#基础编程——简介及基础语法

    C#基础编程--简介及基础语法 百科介绍 C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言.运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计 ...

  2. python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课

    python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...

  3. python基础编程练习_python基础练习之几个简单的游戏

    文档介绍 利用python写"猜数字","猜词语","谁是卧底"这三个游戏,从而快速掌握python编程的入门知识,包括python语法/列 ...

  4. 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  5. python网上编程课程-零基础程序设计(Python入门)

    你将学到什么 Describe the basics of the Python programming language Install Python and write your first pr ...

  6. python基础编程:python如何实现浪漫的烟花秀(附代码)

    天是2023 的第9天,到了这个时间点,部分小伙伴已经开始复盘这一年的得与失.比如今年增加了多少技能点,看了多少本书,写了多少篇文章或者年前的小目标实现进度大概多少等等:做一个象征性的年终总结来告别2 ...

  7. python 神经网络编程 视频_python基础教程之达叔系列——神经网络编程基础|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ (1)二分类问题 目标:习得一个分类器,它以图片的特征向量作为输入,然后预测出结果 y 为 1 还是 0 ...

  8. python的编程模式-Python设计模式:为了整洁又时尚的代码

    关键时刻,第一时间送达! 作者ANDREI BOYANOV - 高级软件工程师 @TOPTAL 让我们再重申一下:Python是一种具有动态类型和动态绑定的高级编程语言.我将它描述为一个强大的高级动态 ...

  9. 自学python单片机编程-用Python语言控制单片机

    早年,虽然Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言.遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼.本文引用地址:ht ...

  10. python语言编程入门-Python编程从入门到精通 PDF 下载

    相关截图: 资料简介: 本书循序渐进.由浅入深地详细讲解了Python语言开发技术,并通过具体实例演练了各个知识点的具体使用流程.全书共23章,其中第1-2章是基础知识部分,讲解了Python语言开发 ...

最新文章

  1. linux批量管理矿机,华硕最新的挖矿主机板可以一次控制 20 个 GPU
  2. LeetCode: 103. Binary Tree Zigzag Level Order Traversal
  3. 牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4
  4. OpenCV使用Laplacian filtering和距离变换以及Laplacian滤波对重叠对象进行分段的实例(附完整代码)
  5. python怎么输入程序代码_学习用 Thonny 写代码: 一个面向初学者的Python IDE
  6. Jquery$和$$的区别
  7. kotlin设置按钮不可点击_全彩LED显示屏软件空点功能如何设置、使用?
  8. mysql5.6源码自动安装脚本
  9. C#序列化出现“因其保护级别而不可访问。只能处理公共类型。”
  10. K8S-删除Terminating状态的namespace
  11. 二维码加logo demo
  12. QT Libvlc播放视频时捕获鼠标和键盘事件
  13. 苹果显示itunes store无法连接服务器,ipad无法连接itunes store的图文解决办法
  14. 《写给大家看的设计书》读后
  15. 开关电源计算机仿真技术pdf,《开关电源仿真设计》PPT课件.ppt
  16. 在OpenCV里用fillPoly填充多边形
  17. 电力-端口映射与才茂DTU通信
  18. 基于Rasa框架搭建中文机器人对话系统
  19. pandas无法创建excel文件或者无法读取excel文件
  20. mysql24小时数据没有补0

热门文章

  1. newgrp - 登录到新的用户组中
  2. 1.1.27 word表格里的文字不显示
  3. 0. 跟踪标记 (Trace Flag) 简介
  4. 开发一个最简单的Cardboard虚拟现实应用(四)做一个Cardboard第一人称控制器
  5. HDU5695 Gym Class【拓扑排序】
  6. UVA10625 GNU = GNU'sNotUnix【字符统计】
  7. POJ1664 放苹果【递推+记忆化递归】
  8. CCF NOI1056 表达式
  9. 编写高质量代码 —— 异常退出条件的判断
  10. SELinux 初探