PythonのMySQLデータベース、データ検証や包装でpymysqlリンクモジュール

1、Pythonモジュールはpymysqlをインストールする必要があります

  ステップ:

  • リンクを作成します。
  • カーソルを作成します。
  • 私たちは、SQL文を実行する必要があります
  • SQLの実行
  • マニュアルの提出
  • 結果を見ます
  • 閉じるリンク

2、データベース・リンク、簡易認証

インポートpymysql 

1リンクライブラリpymysql接続(耐性CTE)を使用して、確立され 
コネティカット= pymysql.connectを(=ホストデータベースのホスト名
                       ユーザ = ユーザ名
                       パスワード = パスワードを
                       DB = " データベース名' 
                       ポート = 3306 
                       文字コード = ' UTF8 "#のコードセットUTF8ではなく、UTF8書き込み
                       = pymysql.cursors.DictCursor cursorclass)  カーソルクラスpymysql.cursors(テスト死んだ).DictCursor(ジュディス遠征死んだ)DictCursorカーソルクラスは、辞書のための単一の結果を返す、複数のネストされた辞書リストの結果は、
#はcursorclassカーソルを追加しないでくださいネストされた元祖元祖は、

2は、カーソルcursor(ロースト色)を作成し 
、カーソル= conn.cursor() 

3. SQL文のニーズに実行する
#の単一のクエリデータ:ところで 
SQL = ;メンバーMobilePhone、= 13264489754からSELECT * 

#を第二の方法:あなたが電話番号を照会入力ユース%sのステーション、ユーザーが入力した携帯電話の着信値:モバイル=入力(「あなたの電話番号を入力してください」) WHERE MobilePhone、SELECT * =%sからSQL1 =」メンバーを; " 

三つの方法:クエリを複数のデータ= SQL2は「*メンバーLIMIT 0,10から選択した、」

4のSQL文片を実行する(エックス公報Q)の間で、カーソルを実行最初のSQL実行
cursor.execute(SQL) 

は、第二の実行を物品SQL cursor.execute(SQL1、引数=(モバイル))#の引数(アーガス)は=カンマ使用して送信を配列型、タプルのリスト、文字列、祖先要素を必要

SQL物品の実行cursor.execute(SQL2) 

手動で提出5.、(時間を買うために)コミットオブジェクト間のリンクを使用し
conn.commit() 

6(ワンを食べ回す)fetchoneの間でカーソルを使用し、結果を得る 
結果1 = cursor.fetchone ()  fetchone戻って1つの結果だけを(百万を食べに回す)、からなる辞書内のレコード
#の印刷(結果1)

結果2 = cursor.fetchall() #    ターンオーストリアを食べて)複数の結果を得るためにはfetchAll、ネストされた辞書のリスト(結果2)印刷

クローズリソースを解放する7.近いリンクを(サイエンス棟課)最初のカーソルをオフ
cursor.close() #
 その後、近くにカーソルオブジェクト 
はconn.close()

3、接続のMySQL、SQL文の実行、データの検証にpymysqlモジュールを使用して

import pymysql


class HandleMysql:
    """
    使用 pymysql 模块来连接mysql, 执行sql语句, 进行数据校验
    """
    def __init__(self):
        self.conn = pymysql.connect(host='数据库主机名,可以放在配置文件',
                                    user='用户名,可以放在配置文件',
                                    password='密码,可以放在配置文件',
                                    db='那个数据库名,可以放在配置文件',
                                    port='端口号,可以放在配置文件',
                                    charset='utf8',
                                    cursorclass=pymysql.cursors.DictCursor)
        self.cursor = self.conn.cursor()    # 创建游标

    def run(self, sql, args=None, is_more=False):     # is_more是否是多个
        """
        执行sql语句
        :param sql:sql语句
        :param args:元组类型可变参数(用于sql语句字符串中的占位符填充时传参使用)
        :param is_more:默认False为执行一条sql语句
        :return:sql语句执行结果(fetchone()返回的是一个字典,fetchall()返回的是一个嵌套字典的列表)
        """
        self.cursor.execute(sql, args=args)  # 执行sql
        self.conn.commit()  # 手动提交
        if is_more:
            return self.cursor.fetchall()   # is_more 为 Trun获取多条执行结果
        else:
            return self.cursor.fetchone()   # is_more 为 False获取单条执行结果

    def close(self):
        """
        关闭链接,释放资源
        """
        self.cursor.close()     # 关闭游标
        self.conn.close()       # 关闭数据库


if __name__ == '__main__':
    mobile = '13264489754'
    sql_1 = "select * from member where mobilephone=%s;"
    sql_2 = "select * FROM member LIMIT 0,10;"

    do_mysql_1 = HandleMysql()

    res1 = do_mysql_1.run(sql_1, args=(mobile,))
    print(res1)

    do_mysql_2 = HandleMysql()
    res2 = do_mysql_2.run(sql_2, is_more=True)
    print(res2)

 

 

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!******* 

おすすめ

転載: www.cnblogs.com/shouhu/p/12148980.html