数据库开发

比较有名的模块有:

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. python快速编程入门课后程序题答案-Python编程从零基础到项目实战 完整PPT+习题答案...

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  2. 零基础学python实战答案-Python编程从零基础到项目实战 完整PPT+习题答案

    Python编程从零基础到项目实战是一本介绍Python相关知识的Python基础教程,内容涉及算法.Python数据分析.图形处理.Web开发.科学计算.项目管理.人工智能.Python爬虫等.其中 ...

  3. python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程

    Python从入门到实践的教程是什么? 第一阶段Python与Linux数据这是Python的入段,也是帮助零基础学员打好基础的重要阶段,让零基础学员可以具备基础的编程能力,并掌握MySQL进阶内容. ...

  4. 基于jupyter notebook的python编程-----通过python编程实现RSSI测距定位技术仿真

    基于jupyter notebook的python编程-----通过python编程实现RSSI测距定位技术仿真目录 一.RSSI测距定位简介 1.什么是RSSI测距定位 2.RSSI测距定位优点 3 ...

  5. python关闭对象语法_Python基础及语法(七)

    文件操作 文件常用操作 open:打开 read:读取 write:写入 close:关闭 readline:行读取 readlines:多行读取 seek:文件指针操作 tell:指针位置 打开操作 ...

  6. 自学python编程免费教程-python编程入门 零基础学习Python基础(附带最新免费教程)...

    本篇是面向编程零基础学员的Python入门教程,内容涵盖了Python的基础知识和初步应用.以较轻快的风格,向零基础学习者介绍了一门时下比较流行的.并且用途比较广泛的编程语言.同时,其语法简洁而清晰, ...

  7. python编程入门书籍-零基础学习Python编程,这8本书必看!

    作为一名程序员,你肯定知道Python语言,从2017年开始Python的热度就一路飙升,已经成为大量开发者推荐入门的编程语言和第二编程语言,而且Python还是人工智能的主要编程语言,受到大众的追捧 ...

  8. python 编程入门学习基础

    什么是编程语言 学习知识的本质,就是解决3个问题: 1.它是什么 2.它有什么用 3.我该怎么用/不用它会怎样 学习一个东西,最重要的是搞清楚它的本质和实质!!! 学会从生活中找例子,通过生活例子,来 ...

  9. python编程狮app题库_‎Python编程狮-零基础学Python im App Store

    Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...

  10. python编程狮题库答案_‎Python编程狮-零基础学Python dans l’App Store

    Python编程狮是W3Cschool编程狮旗下专门为零基础Python编程爱好者打造的一款入门工具App,致力于帮助初学者入门,轻松迈入编程世界.学Python,从这里开始! [零基础也能学]初学者 ...

最新文章

  1. 使用React.js开发自己的Chrome插件
  2. 直播预告丨揭秘神策数据销售方法论,一起向 Top Sales 迈进!
  3. linux ssh抓包,如何在SSH连接Linux系统的环境下使用wireshark抓包?
  4. TA能让你家的那些“哑”终端都“活”过来
  5. 网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)
  6. linux 内核修炼之道——系统调用
  7. Java学习路线图(如何快速学Java)
  8. PreferenceScreen 悬浮清除按钮
  9. 关系代数表达式优化步骤
  10. 解决异常redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
  11. 【java】java如何保留时分秒存取mySql中的datetime类型数据的方法 及 显示时间与数据库存放时间相差n小时的解决方法
  12. 汇编语言寄存器AX,BX,CX,DX
  13. 推荐系统概述推荐系统算法简介
  14. python26章_44G-26章节Python盖世修炼最新实战 全新升级版Python全栈架构师高级课程 从零实战...
  15. uniapp微信头像
  16. altium designer 心得
  17. 组件图知识点(UML)
  18. Maven打包(瘦身打包部署),不包含第三方依赖jar包
  19. vue--百度地图之离线地图--大量标注点造成卡顿问题--海量点聚合性能优化
  20. 苹果手机充电孔变松了_用iPhone 12的MagSafe无线充电器给安卓手机充电?苹果:你想多了|充电器|安卓手机|手机|iphone|iphone手机...

热门文章

  1. SQLSERVER2005登录时出错
  2. Linux自学日记1
  3. java and asp.net
  4. 【Problem solved】 error C2665: “loadimage”: 2 个重载中没有一个可以转换所有参数类型...
  5. 大道至简_阅读笔记02
  6. 关于android开发环境中sdk和adt更新到22.6之后多了appcompat_v7
  7. 转:Git_Windows 系统下Git安装图解
  8. HashMap数据类型使用注意-不能使用基本数据类型
  9. python语言程序设计基础第二版答案-python语言程序设计基础(第二版)第五章答案随笔...
  10. python利器怎么编程-OpenCV-Python,计算机视觉开发利器