python基础知识点讲解


本文摘自php中文网,作者巴扎黑,侵删。

第十六节 MySQLdb

  • win64位安装python-mysqldb1.2.5

  • ubuntu下安装MySQLdb

    1

    sudo apt-get install python-MySQLdb

  • 导入MySQLdb库

    1

    import MySQLdb

  • 创建数据库连接

    1

    conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")

  • connect对象属性

    • commit():如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。

    • rollback():如果有权限,就取消当前的操作,否则报错。

    • cursor([cursorclass]):游标指针。

  • 创建游标(指针)cursor

    1

    cur = conn.cursor()

  • cursor执行命令的方法:

    • execute(query, args):执行单条sql语句。query为sql语句本身,args为参数值的列表。执行后返回值为受影响的行数。

    • executemany(query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

  • 在数据表中插入一条记录

    1

    cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","python@gmail.com"))

  • 在数据表中插入多条记录

    1

    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")))

  • 提交数据库操作

    1

    conn.commit()

  • 查询数据

    1

    cur.execute("select * from users")

    • fetchall(self):接收全部的返回结果行.

    • fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

    • fetchone():返回一条结果行.

    • scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      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"

      1

      2

      3

      cur.scroll(1)

      cur.scroll(-2)

      cur.scroll(2,"absolute")    #回到序号是2,但指向第三条

  • 更新数据

    1

    2

    cur.execute("update users set username=%s where id=2",("mypython"))

    conn.commit()

  • 指定数据库

    1

    2

    conn = MySQLdb.connect("localhost","root","123456",port=3306,charset="utf8")    #创建数据库时不指定那个数据库

    conn.select_db("test")      #连接创建后再指定

  • 关闭数据库

    1

    2

    cur.close()     #先关闭游标

    conn.close()    #再关闭数据库


第十七节 面向对象

类和对象

  • 面向过程和面向对象的编程

    • 面向过程的编程:函数式编程,C程序等

    • 面向对象的编程:C++,Java,Python等

  • 类和对象:是面向对象中的两个重要概念

    • 类:是对事物的抽象,比如:汽车模型

    • 对象:是类的一个实例,比如:QQ轿车,大客车

  • 范例说明

    • 汽车模型可以对汽车的特征和行为进行抽象,然后可以实例化一台真实的汽车实体出来

Python类定义

  • Python类的定义

    • 使用class关键字定义一个类,并且类名的首字母要大写

    • 当程序员需要创建的类型不能用简单类型表示时就需要创建类

    • 类把需要的变量和函数组合在一起,这种包含也称之为“封装”

  • Python类的结构

    1

    2

    3

    4

    5

    6

    7

    8

    class 类名:

        成员变量

        成员函数

     

    class MyClass():

        first = 123

        def fun(self):

            print "I am function"

  • 对象的创建

    • 句柄用于区分不同的对象

    • 对象的属性和方法与类中的成员变量和成员函数对应

      1

      2

      if __name__ == "__main__":

          myClass = MyClass()     #创建类的一个实例

    • 创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象的句柄、属性和方法。

  • 构造函数__init__

    1

    2

    3

    4

    5

    class Person:

        def __init__(self, name, lang, website):

            self.name = name

            self.lang = lang

            self.website = website

  • self是一个很神奇的参数

    • self指向类的一个实例,当实例调用方法时,self就指向这个调用的方法的实例

  • 子类、父类和继承

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    # 抽象形状类

    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基础点介绍

如何选择Python代码的编辑器

Python3中* 和 ** 运算符的用法是什么

Python数据结构:一个被低估的namedtuple(二)

Python螺旋线怎么画

Python如何编写公众号

Python打包exe可执行文件

简要概括Python if多条件判断语句的特点

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...