首頁 >後端開發 >Python教學 >python基礎知識點講解

python基礎知識點講解

巴扎黑
巴扎黑原創
2017-06-23 11:10:022106瀏覽

第十六節MySQLdb

  • win64位元安裝python-mysqldb1.2.5

  • 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")
    • 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基礎知識點講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn