ホームページ  >  記事  >  バックエンド開発  >  Pythonの基礎知識ポイントを解説

Pythonの基礎知識ポイントを解説

巴扎黑
巴扎黑オリジナル
2017-06-23 11:10:022076ブラウズ

セクション 16 MySQLdb

  • win64 ビットのインストール python-mysqldb1.2.5

  • ubuntu に MySQLdb をインストールする

    sudo apt-get install python-MySQLdb
  • MySQLdb ライブラリをインポートする

    import MySQLdb
  • Creデータベース接続を実行しました

    conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")
  • オブジェクトのプロパティを接続します

    • commit(): データベーステーブルが変更された場合は、コミットして現在のデータを保存します。もちろん、このユーザーが権限を持たずにそれを実行した場合は、何も起こりません。 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")

    • rollback(): 権限がある場合は、現在の操作をキャンセルします。権限がない場合は、エラーが報告されます。

    cursor([cursorclass]): カーソル ポインター。
  • カーソル (ポインター) カーソルを作成します

    cur.scroll(1)
    cur.scroll(-2)
    cur.scroll(2,"absolute")    #回到序号是2,但指向第三条
  • cursor メソッドを使用してコマンドを実行します:

execute(query, args): 単一の SQL ステートメントを実行します。 query は SQL ステートメントそのもので、args はパラメータ値のリストです。実行後の戻り値は影響を受けた行数です。

executemany(query, args): 単一の SQL ステートメントを実行しますが、パラメーター リスト内のパラメーターを繰り返し実行し、戻り値は影響を受ける行の数になります

  • Insertデータテーブルに 1 つのレコード

    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()    #再关闭数据库
    データをクエリ
  • class 类名:
        成员变量
        成员函数
    
    class MyClass():
        first = 123
        def fun(self):
            print "I am function"

    • fetchall(self) :すべての返された結果行を受信します。
    • fetchmany(size=None): size の値が返された結果行の数より大きい場合、cursor.arraysize データを受信します。
    • fetchone(): 結果の行を返します。
  • scroll(value, mode='relative'): ポインタを移動します。特定の行 mode='relative' の場合、値バーを現在の行から移動することを意味します。mode='absolute' の場合、結果セットの最初の行から値バーを移動することを意味します。カーソルオブジェクトがデータを取得する方法
    • カーソルの操作

cur.scroll(n) または cur.scroll(n, "relative") : 現在の位置に対して上向き、または下向きに移動を意味します。n は正の数で下向き (前方) を意味し、n は負の数で上向き (後退) を意味します
  • 「絶対」を達成する別の方法があります「相対」移動ではなく、移動: 1 つのパラメータを「絶対」に増加
if __name__ == "__main__":
    myClass = MyClass()     #创建类的一个实例
  • データを更新
class Person:
    def __init__(self, name, lang, website):
        self.name = name
        self.lang = lang
        self.website = website
  • データベースを指定
  • # 抽象形状类
    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()
  • データベースを閉じる
  • rrreee
  • オブジェクト-指向

    クラスとオブジェクト
    • 手続き型およびオブジェクト指向プログラミング

    • プロセス指向プログラミング:関数型プログラミング、Cプログラミングなど
    • オブジェクト指向プログラミング:C++、Java、Pythonなど
  • クラスとオブジェクト: 指向性がありますオブジェクトにおける 2 つの重要な概念
  • クラス: 車のモデルなどの抽象化です
    • オブジェクト: クラスのインスタンスです。例: QQ 車、バス
  • 説明例
  • 車モデルは車の特性と動作を抽象化し、実際の車エンティティをインスタンス化できます🎜🎜🎜🎜Python クラス定義🎜🎜🎜 🎜Python クラス定義🎜🎜🎜🎜🎜使用 class キーワードはクラスを定義し、クラス名の最初の文字は大文字にする必要があります🎜🎜🎜🎜 プログラマが単純型で表現できない型を作成する必要がある場合、クラスを作成するには🎜🎜🎜🎜クラスは必要な変数と関数を組み合わせます。この種の包含は「カプセル化」とも呼ばれます🎜🎜🎜🎜🎜Pythonクラスの構造🎜rrreee🎜🎜🎜オブジェクトの作成🎜🎜🎜🎜 🎜ハンドルは、さまざまなオブジェクトを区別するために使用されます🎜🎜🎜🎜オブジェクトの属性とメソッド、およびクラス内のメンバー変数とメンバー関数は、🎜rrreee🎜🎜🎜に対応します。オブジェクトが作成されるとき、オブジェクトを作成するプロセスはインスタンス化と呼ばれます。 、オブジェクトのハンドル、プロパティ、メソッドという 3 つの特性が含まれています。 🎜🎜🎜🎜🎜コンストラクター __init__🎜rrreee🎜🎜🎜self は非常に魔法のパラメータです🎜🎜🎜🎜🎜インスタンスがメソッドを呼び出すとき、self は呼び出されたメソッドのインスタンスを指します🎜🎜。 🎜🎜🎜サブクラス、親クラス、継承🎜rrreee🎜🎜🎜Pythonは多重継承をサポートしていますが、推奨されません🎜🎜🎜

    以上がPythonの基礎知識ポイントを解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。