Python讀寫數據庫

Python讀寫數據庫

爲什麼要Python操作數據庫?

(1)測試需要:用例檢查點、用例數據準備、運維

(2)手工測試:使用工具

(3)自動化測試:編程語言訪問數據庫

1 Python操作Mysql

mysqlclient庫,第三方開發的

安裝命令:pip install mysqlclient == 1.3.12

獲取數據記錄:fetchone,fetchmany,fetchall

import MySQLdb

# 連接數據庫,設置連接參數:數據庫地址、端口、用戶名、密碼、所需連接的數據庫名、編碼方式
conn = MySQLdb.connect(
    host = '192.168.5.249',
    port = '9809',
    user = 'admin',
    password = '123456',
    db = 'TestDB',
    charset = 'utf8'
)

c = conn.cursor()
c.execute("select * from student")

# 打印出查詢的所有記錄
for i in range(c.rowcount):
    row = c.fetchone()
    if row[1] == 'MySQL'
        print("檢查點 ==》 MySQL課程存在,測試通過")
        break

# 插入一條記錄並提交事務
c.execute("insert into student(name, sex, year) value ('王少偉', '男', 25)")
conn.commit()
conn.close()

2 Python創建表create

import pymysql

def create_table():
    db = pymysql.connect("localhost", "admin", "123456", "TestDB")
    cursor = db.cursor()
    cursor.execute("DROP TABLE IF EXISTS student")

    sql = """
        create table student(
        first_name char(10) not null,
        last_name char(10),
        age int,
        create_time datetime
        )
    """

    try:
        cursor.execute(sql)
        print("數據庫創建成功!")
    except Exception as msg:
        print("創建數據庫識別,case:%s" % msg)
    finally:
        db.close()

def main():
    create_table()

if __name__ == "__main__" :
    main()

3 Python插數據insert

在這裏插入圖片描述

import pymysql
import datetime

def insert_record():
    db = pymysql.connect("localhost", "admin", "123456", "TestDB")
    cursor = db.cursor()

    sql = "insert into student(first_name, last_name, age, create_time)"\
        "values('%s', '%s', %d, '%s') % " \
          "('san', 'zhang', 22, datetime.datetime.now())"

    try:
        cursor.execute(sql)
        db.commit()
        print("插入數據成功!")
    except Exception as msg:
        print("插入數據失敗,case:%s" % msg)
        db.rollback()
    finally:
        db.close()

def main():
    insert_record()

if __name__ == "__main__":
    main()

4 Python查數據select

import pymysql
import datetime

def select_record():
    db = pymysql.connect("localhost", "admin", "123456", "TestDB")
    cursor = db.cursor()

    sql = "select * from student"

    try:
        cursor.execute(sql)
        resulte = cursor.fetchall()
        for row in resulte:
            first_name = row[0]
            last_name = row[1]
            age = row[2]
            create_time = row[4]
            print(first_name, last_name, age, create_time)
    except Exception as msg:
        print("查詢數據失敗,case:%s" % msg)
        db.rollback()
    finally:
        db.close()

def main():
    select_record()

if __name__ == "__main__":
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章