第二章 python基础(三)
第十六节 MySQLdb
ubuntu下安装MySQLdb
sudo apt-get install python-MySQLdb导入MySQLdb库
import MySQLdb创建数据库连接
conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")- connect对象属性
commit():如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。rollback():如果有权限,就取消当前的操作,否则报错。cursor([cursorclass]):游标指针。
创建游标(指针)cursor
cur = conn.cursor()- cursor执行命令的方法:
execute(query, args):执行单条sql语句。query为sql语句本身,args为参数值的列表。执行后返回值为受影响的行数。executemany(query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
在数据表中插入一条记录
cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","python@gmail.com"))在数据表中插入多条记录
cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","g@gmail.com"),("facebook","222333","f@face.book"),("github","333444","git@hub.com"),("docker","444555","doc@ker.com")))提交数据库操作
conn.commit()查询数据
cur.execute("select * from users")- cursor对象获取数据的方法
fetchall(self):接收全部的返回结果行.fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.fetchone():返回一条结果行.scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.cur.execute("select * from users")
lines = cur.fetchall()
for line in lines:
print line cur.execute("select * from users where id=1")
line_first = cur.fetchone() #只返回一条
print line_first cur.execute("select * from users")
print cur.fetchall()
- cursor对象获取数据的方法
游标cursor的操作
cur.scroll(n)或cur.scroll(n,"relative"):意思是相对当前位置向上或者向下移动,n为正数,表示向下(向前),n为负数,表示向上(向后)还有一种方式,可以实现“绝对”移动,不是“相对”移动:增加一个参数"absolute"
cur.scroll(1)
cur.scroll(-2)
cur.scroll(2,"absolute") #回到序号是2,但指向第三条
更新数据
cur.execute("update users set username=%s where id=2",("mypython"))
conn.commit()指定数据库
conn = MySQLdb.connect("localhost","root","123456",port=3306,charset="utf8") #创建数据库时不指定那个数据库
conn.select_db("test") #连接创建后再指定关闭数据库
cur.close() #先关闭游标
conn.close() #再关闭数据库
第十七节 面向对象
类和对象
- 面向过程和面向对象的编程
- 面向过程的编程:函数式编程,C程序等
- 面向对象的编程:C++,Java,Python等
- 类和对象:是面向对象中的两个重要概念
- 类:是对事物的抽象,比如:汽车模型
- 对象:是类的一个实例,比如:QQ轿车,大客车
- 范例说明
- 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例化一台真实的汽车实体出来
Python类定义
- Python类的定义
- 使用class关键字定义一个类,并且类名的首字母要大写
- 当程序员需要创建的类型不能用简单类型表示时就需要创建类
- 类把需要的变量和函数组合在一起,这种包含也称之为“封装”
Python类的结构
class 类名:
成员变量
成员函数 class MyClass():
first = 123
def fun(self):
print "I am function"- 对象的创建
- 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。
- 句柄用于区分不同的对象
对象的属性和方法与类中的成员变量和成员函数对应
if __name__ == "__main__":
myClass = MyClass() #创建类的一个实例
- 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。
构造函数__init__
class Person:
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website- self是一个很神奇的参数
- self指向类的一个实例,当实例调用方法时,self就指向这个调用的方法的实例
子类、父类和继承
# 抽象形状类
class Shape:
# 类的属性
edge = 0
# 构造函数
def __init__(self, edge):
self.edge = edge
# 类的方法
def getEdge(self):
return self.edge
# 抽象方法
def getArea(self):
pass #三角形类,继承抽象形状类
class Triangle(Shape):
width = 0
height = 0
# 构造函数
def __init__(self, width, height):
#调用父类构造函数
Shape.__init__(self, 3)
self.width = width
self.height = height
#重写方法
def getArea(self):
return self.width * self.height / 2 #四边形类,继承抽象形状类
class Rectangle(Shape):
width = 0
height = 0
# 构造函数
def __init__(self, width, height):
#调用父类构造函数
Shape.__init__(self, 4)
self.width = width
self.height = height
#重写方法
def getArea(self):
return self.width * self.height triangle = Triangle(4,5);
print triangle.getEdge()
print triangle.getArea() rectangle = Rectangle(4,5);
print rectangle.getEdge()
print rectangle.getArea()python支持多继承,但不推荐使用
第二章 python基础(三)的更多相关文章
- 第二章 python基础(一)
第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...
- 第二章----python基础
概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行.python使用缩进来组织代码块,Python程序中大小写是敏感 ...
- 第二章 Python基础语法
2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...
- 第二章 python基础(二)
第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- 第二章Python入门
第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
随机推荐
- mac虚拟机搭建自动化环境-wda和python wda client
尽量升级Xcode到最新版,保持iPhone的版本大于9.3 1.安装webDriverAgent到ios真机 从github上下载代码:git clone https://github.com/fa ...
- win10正式版开始菜单无法打开,右边的网络连接、操作中心也打不开
问题描述: 开机后电脑键盘的win键无响应,鼠标点击菜单栏中的这几个按键也都无响应,但是点击自己固定的应用程序却没有问题,在网上查找尝试了许多资料,终于找到了一个合适的解决方案.现记录如下 解决方案: ...
- 多媒体开发之---h264格式slice_header
从Slice_Header学习H.264 写在前面: $ H.264我是结合标准和毕厚杰的书一块学的.看句法语义时最是头疼,一大堆的元素,很需要耐心.标准中在介绍某个元素的语义时,经常会突然冒 ...
- C语言基础知识【数据类型】
C 数据类型1.在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式.2.C 中的类型可分为以下几种:序号 类 ...
- OGEngine教程:字体工具使用
1.打开 BitmapFont tool,在红框中输入你要显示的字. 2.写完后保存字体文件 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvT3Jhbmdl ...
- spring web app的结构
1 入口是web.xml tomcat加载war的时候会去读该入库文件. 2 web.xml中spring mvc的配置 定义servlet到servlet-mapping之间的映射,org.spri ...
- 阿里云+LAMP环境配置
1. 准备好一键Linux环境的脚本: http://dwz.cn/6Nlexm 2. 运行命令:# yum install lynx tree nmap sysstat lrzsz dos2unix ...
- BAPI LIST
[转自 http://blog.csdn.net/minsenwu/article/details/8432081] 库存管理BAPI 库存: 1. BAPI_MATERIAL_AVAILABILIT ...
- Django下MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL解惑
Django中settings中的四个设置参数的一些故事: MEDIA_ROOT, MEDIA_URL, STATIC_ROOT, STATIC_URL 1.MEDIA_ROOT与MEDIA_URL ...
- Python socket server demo
#coding:utf-8 from socket import * #开启ip和端口 ip_port = ("192.168.1.103",8088) print ip_port ...