欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用pymongo模塊操作MongoDB的方法示例

 更新時間:2018年07月20日 11:00:17   作者:鎧甲巨人  
這篇文章主要介紹了Python使用pymongo模塊操作MongoDB的方法,結(jié)合實例形式分析了Python基于pymongo模塊連接MongoDB數(shù)據(jù)庫以及增刪改查與日志記錄相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python使用pymongo模塊操作MongoDB的方法。分享給大家供大家參考,具體如下:

通過pymongo實現(xiàn)python對Mongodb的操作。

具體看python代碼

#!/usr/bin/python
# coding=utf-8
#python實現(xiàn)對MongoDB的操作
#需要安裝python2、pymongo、安裝pymongo可能需要pip,logging打印日志
#改腳本主要功能就是每5秒改一次mongodb中存儲的ip,5秒后再改回來
import pymongo
import logging
import datetime
import os
import time
import traceback
import sys,gc
# 初始化logging
logging.basicConfig(level=logging.NOTSET,
          format='%(asctime)s %(filename)s[line:%(lineno)d] [%(levelname)s] %(message)s',
          datefmt='%Y-%m-%d %H:%M:%S',
          filename='clear_screenshot_based_on_db.log',
          filemode='a')
# set to print log to console at the same time
console = logging.StreamHandler()
console.setLevel(logging.NOTSET)
formatter = logging.Formatter('%(asctime)s %(name)s [%(levelname)s] %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
class MongoDB_Util():
#寫一個類,用于實例化pymongo對象以及對mongo的增刪改查
  def __init__(self, user, password, host, port, database, max_pool_size=2):
    try:
      client = pymongo.MongoClient(host=host, port=port, maxPoolSize=max_pool_size)
#實例化對象,需要mongo的相關(guān)參數(shù)
      if client == None:
        logging.error(
          "MongoDB_Util.__init__ : Initialize mongodb client object error,host:%s port:%s" % (
            host, port))
        raise Exception("Initialize mongodb client object error")
      try:
        admin_db = client['admin']  #指定連接的庫
        admin_db.authenticate(user, password) #身份驗證
        self.persist_db = admin_db  #賦值屬性,通過該屬性執(zhí)行其他操作
      except Exception as exp:
        logging.error(
          "MongoDB_Util.__init__ : Authtication failed,host:%s port:%s database:%s user:%s password:%s" %
          (host, port, database, user, password))
        raise exp
    except Exception as exp:
      logging.error(
        "MongoDB_Util.__init__ : Exception has occured : %s" % str(sys.exc_info()[1]))
      raise exp
  def update(self):
#update方法,對mongodb執(zhí)行update操作
    tom = None
    try:
      if self.persist_db == None:
        logging.error('MongoDB_Util.delete : Persist object has not been initialised')
        raise Exception('Persist object has not been initialised')
      collection = self.persist_db['fuzzing_agent.configuration']  #鏈接fuzzing_agent.configuration表
      abc=collection.find({"default_value" : "10.10.1.179"})   #執(zhí)行find命令
      for i in abc:
        tom = i["default_value"]
      if tom == "10.10.1.179":
    #判斷該值是否為179,如果是則通過update改為134
        collection.update({"default_value" : "10.10.1.179"},
                 {'$set':{'default_value': '10.10.1.134'}})
        collection.update({"default_value" : "10.10.1.179:/run/media/root/disk01/fuzzing"},
                 {'$set':{"default_value" :"10.10.1.134:/run/media/root/disk01/fuzzing"}})
        logging.debug("179 > 134")
        time.sleep(5)
      else:
        collection.update({"default_value" : "10.10.1.134"},
                 {'$set':{'default_value': '10.10.1.179'}})
        collection.update({"default_value" : "10.10.1.134:/run/media/root/disk01/fuzzing"},
                 {'$set':{"default_value" :"10.10.1.179:/run/media/root/disk01/fuzzing"}})
        logging.debug("134 > 179")
        time.sleep(5)
      return
    except Exception as exp:
      logging.error('Mongodb_Util.delete : Exception has occured : ' + str(sys.exc_info()[1]))
      raise exp
def change_ip(mongodb_host) :
  result = False
  try :
    mongo_util = MongoDB_Util('username', 'password', mongodb_host, 27017, 'admin',max_pool_size = 2) #用戶名,密碼,mongodb的Ip,端口,連接庫,連接池
    mongo_util.update()
    result = True
  except :
    logging.error('change_ip: Exception has occured : ' + traceback.format_exc())
  finally:
    return result
if __name__ == '__main__' :
  while True :
    try :
      if change_ip(mongodb_host = '127.0.0.1') :
        #mongodb的ip地址
        logging.debug('update is done !!!')
      else :
        logging.error('not update done')
    except :
      logging.error('main : Exception has occured : ' + traceback.format_exc())
    finally:
      logging.debug("one loop %s" %datetime.datetime.now())

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python數(shù)學(xué)運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python圖形用戶界面tkinter之標簽Label的使用說明

    python圖形用戶界面tkinter之標簽Label的使用說明

    這篇文章主要介紹了python圖形用戶界面tkinter之標簽Label的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 基于PyTorch中view的用法說明

    基于PyTorch中view的用法說明

    這篇文章主要介紹了基于PyTorch中view的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python的簡單四則運算語法樹可視化

    python的簡單四則運算語法樹可視化

    這篇文章主要介紹了python的簡單四則運算語法樹可視化,這篇文章的內(nèi)容也很簡單,就是給定一個四則運算的表達式,畫出它的語法樹,需要的朋友可以參考下
    2023-04-04
  • Django完整增刪改查系統(tǒng)實例代碼

    Django完整增刪改查系統(tǒng)實例代碼

    Django實現(xiàn)增刪改查,主要是依賴于models來實現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于Django完整增刪改查系統(tǒng)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • python wav模塊獲取采樣率 采樣點聲道量化位數(shù)(實例代碼)

    python wav模塊獲取采樣率 采樣點聲道量化位數(shù)(實例代碼)

    這篇文章主要介紹了python wav模塊獲取采樣率 采樣點聲道量化位數(shù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • python實現(xiàn)圖像拼接功能

    python實現(xiàn)圖像拼接功能

    這篇文章主要為大家詳細介紹了python實現(xiàn)圖像拼接功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python操作Word文件的流程步驟

    Python操作Word文件的流程步驟

    要操作Word文件,我們需要使用一個Python的第三方庫叫做?python-docx,它可以讓我們使用?Python對Word文件進行讀取、修改以及創(chuàng)建等操作,文中有詳細的流程步驟介紹,需要的朋友可以參考下
    2023-06-06
  • 探索Python列表合并技術(shù)提高代碼靈活性

    探索Python列表合并技術(shù)提高代碼靈活性

    本文將深入研究Python中列表合并的幾種方法,通過詳細的示例代碼和細致的解釋,呈現(xiàn)一場關(guān)于列表操作的精彩探險,無論是初學(xué)者還是有經(jīng)驗的開發(fā)者,通過學(xué)習(xí)本文,將更加熟練地運用這些方法,提升代碼的效率和可讀性
    2024-01-01
  • Python自定義簡單圖軸簡單實例

    Python自定義簡單圖軸簡單實例

    這篇文章主要介紹了Python自定義簡單圖軸簡單實例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 使用rpclib進行Python網(wǎng)絡(luò)編程時的注釋問題

    使用rpclib進行Python網(wǎng)絡(luò)編程時的注釋問題

    這篇文章主要介紹了使用rpclib進行Python網(wǎng)絡(luò)編程時的注釋問題,作者講到了自己在編寫服務(wù)器時要用unicode注釋等需要注意的地方,需要的朋友可以參考下
    2015-05-05

最新評論