Scrapy連接各種數據庫

Mysql


Python要想要訪問Mysql數據庫,事先需要安裝訪問Mysql所使用的第三方庫。根據Python版本的不同,所使用的第三方庫也不一樣:

  • Python2:MySQLdb
  • Python3:mysqlclient

mysqlclient是Mysqldb的優化版,增加了對Python3的支持和錯誤修復。這兩個庫的接口幾乎一樣,因此在不同版本的Python環境中,可以使用相同的代碼實現Mysql的訪問,這裏推薦大家使用Python3+mysqlclient來訪問Mysql數據庫。

使用pip命令安裝mysqlclient

pip install mysqlclient

下面來看下數據庫的一般操作流程:

1、連接Mysql數據庫

#方式一
import Mysqldb

db_conn = Mysqldb.connect(db="數據庫名",host="ip地址",user="用戶名",password="密碼",charset="utf8")

#方式二
import pymysql

db_conn = pymysql.connect(db="數據庫名",host="ip地址",user="用戶名",password="密碼",charset="utf8")

 2、獲取操作遊標

db_cursor = db_conn.cursor()

3、執行sql語句

sql  = 'show tables;'
db_cursor.execute(sql)

4、回滾

在對數據庫執行更新操作的過程中,如果遇到錯誤,可以使用rollback()方法將數據恢復到更新前的狀態。這就是所謂的原子性,即要麼完整地被執行,要麼完全不執行。

db_cursor.rollback()

5、提交數據

db_cursor.commit()

6、關閉遊標及數據庫

db_cursor.close()
db_conn.close()

MongoDB


Python想要訪問MongoDB數據庫事先需要安裝訪問MongoDB所使用的第三方庫pymongo,網上也提供了一個可視化工具MongoDB Compass.

pip install pymongo

操作數據庫的一般流程如下:

1、連接MongoDB數據庫服務器

import pymongo
#方式一:使用默認的host、port

db_client = pymongo.MongoClient()

#方式二:自定義host、port參數

db_client = pymongo.MongoClient(host="xxx",port = 27017)

#方式三:使用標準的URL連接語法

db_client = pymongo.MongoClient('mongodb://host:port/')

2、指定數據庫

MongoDB可以建立多個數據庫,因此需要指定要操作的數據庫。

#方式一

db = db_client['數據庫名']

#方式二

db = db_client.數據庫名

3、指定集合

MongoDB中的一個數據庫可以包含多個集合,這跟關係型數據庫中一個數據庫有多個表是一個道理。

db_collection = db['集合名']

如果指定的集合不存在,將會自動創建。

4、集合內的元素操作

   插入文檔,每一個插入文檔對象都會分配一個唯一的_id字段爲主鍵。

#方式一:插入一條

res = db_collection.insert_one('字典類型')

#方式二:插入多條

res = db_collection.insert_many([dict1,dict2])

查詢文檔

#方式一:查詢符合條件的單個文檔

res = db_collection.find_one({'key','values'})

#方式二:查詢所有文檔

res = db_collection.find({})

#方式三“查詢符合條件的所有文檔

res = db_collection.find({'key','values'})

更新文檔

#查詢條件

filter = {"key":"value"}

#更新語句

updata = {"$set":{"key":"value"}}

#方式一:更新與條件匹配的單個文檔

res = db_collection.update_one(filter,update)

#方式二:更新與條件匹配的所有文檔

res = db_collection.update_many(filter,update)

刪除文檔

#方式一:刪除與條件匹配的單個文檔

res = db_collection.delete_one({'key':'value'})

#方式二:刪除與條件匹配的所有文檔

res = db_collection.delete_many({'key':'value'})

5、關閉數據庫

db_client.close()

Redis


Python想要訪問Redis數據庫,必須安裝訪問Redis數據庫所需要的第三方庫redis,此處寫過

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