1. 程式人生 > 實用技巧 >python 操作資料庫

python 操作資料庫

#!/usr/bin/python
# _*_ coding:utf-8 _*_
import pymysql
import xlsxwriter
#開啟資料庫連結
conn = pymysql.connect(host = '10.61.3.181',user = 'zabbix',password = 'zabbix',db = 'zabbix',port =3307,charset = 'utf8')
#使用cursor()方法獲取操作遊標
#將屬性cursor設定為字典,預設為元組
#cursor = conn.cursor()              #預設為元組
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)   #將屬性cursor設定為字典
#定義查詢語句
sql = "select * from hosts"
#執行SQL,返回受影響的行數,返回值為行數
row = cursor.execute(sql)
print(row)
#獲取查詢結果的第一行資料
row_1 = cursor.fetchone()
print("列印獲取查詢結果的第一行資料:")
print(row_1)
#獲取查詢結果的前n行資料
row_2 = cursor.fetchmany(3)
print("列印獲取查詢結果的前n行資料:")
print(row_2)
print("列印獲取查詢結果所有值:")
#建立檔案
work_book = xlsxwriter.Workbook('4G路由器資訊.xlsx')
#建立一個sheet
work_book1 = work_book.add_worksheet()

headings = ["ip地址","主機名"]
#定義兩個列表IP,name
ip = []
name = []
#獲取所有查詢結果
row_3 = cursor.fetchall()
for i in range(len(row_3)):
    # print(row_3[i])
    d = row_3[i]
    ip.append(d['host'])
    name.append(d['name'])
    # print(ip,name)

data = [ip,name]
#寫入標題
work_book1.write_row('A1',headings)
#寫入資料(按照列寫)
work_book1.write_column('A2',data[0])
work_book1.write_column('B2',data[1])
#關閉excel 檔案
work_book.close()
#提交資料
conn.commit()

#關閉遊標
cursor.close()
#關閉資料庫連結
conn.close()