最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

通過(guò)pymongo實(shí)現(xiàn)python對(duì)Mongodb的操作。

具體看python代碼

#!/usr/bin/python
# coding=utf-8
#python實(shí)現(xiàn)對(duì)MongoDB的操作
#需要安裝python2、pymongo、安裝pymongo可能需要pip,logging打印日志
#改腳本主要功能就是每5秒改一次mongodb中存儲(chǔ)的ip,5秒后再改回來(lái)
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():
#寫一個(gè)類,用于實(shí)例化pymongo對(duì)象以及對(duì)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)
#實(shí)例化對(duì)象,需要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']  #指定連接的庫(kù)
        admin_db.authenticate(user, password) #身份驗(yàn)證
        self.persist_db = admin_db  #賦值屬性,通過(guò)該屬性執(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方法,對(duì)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,如果是則通過(guò)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,端口,連接庫(kù),連接池
    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常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

  • 對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解

    對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解

    今天小編就為大家分享一篇對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python實(shí)現(xiàn)提取和去除數(shù)據(jù)中包含關(guān)鍵詞的行

    Python實(shí)現(xiàn)提取和去除數(shù)據(jù)中包含關(guān)鍵詞的行

    這篇文章主要介紹了Python如何提取數(shù)據(jù)中包含關(guān)鍵詞的行已經(jīng)如何去除數(shù)據(jù)中包含關(guān)鍵詞的行,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-08-08
  • Python基于域相關(guān)實(shí)現(xiàn)圖像增強(qiáng)的方法教程

    Python基于域相關(guān)實(shí)現(xiàn)圖像增強(qiáng)的方法教程

    當(dāng)在圖像上訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型時(shí),通過(guò)對(duì)由數(shù)據(jù)增強(qiáng)生成的更多圖像進(jìn)行訓(xùn)練,可以使模型更好地泛化。本文將為大家介紹Python基于域相關(guān)的圖像增強(qiáng)實(shí)現(xiàn)方法,需要的可以了解一下
    2022-01-01
  • 一文帶你解鎖Python文件匹配技巧

    一文帶你解鎖Python文件匹配技巧

    在日常的文件操作和數(shù)據(jù)處理中,文件匹配是一個(gè)非常常見(jiàn)的任務(wù),本文將詳細(xì)介紹如何使用?Python?實(shí)現(xiàn)文件匹配,有需要的小伙伴可以參考下
    2024-12-12
  • 如何利用Matplotlib庫(kù)繪制動(dòng)畫及保存GIF圖片

    如何利用Matplotlib庫(kù)繪制動(dòng)畫及保存GIF圖片

    這篇文章主要給大家介紹了關(guān)于如何利用Matplotlib庫(kù)繪制動(dòng)畫及保存GIF圖片的相關(guān)資料,matplotlib模塊提供了很高級(jí)和非常友好的使用方式,使用起來(lái)也是非常方便的,需要的朋友可以參考下
    2021-06-06
  • python?beautifulsoup4?模塊詳情

    python?beautifulsoup4?模塊詳情

    本文主要介紹了python?beautifulsoup4模塊詳情,BeautifulSoup4是一款python解析庫(kù),主要用于解析HTML和XML,在爬蟲(chóng)知識(shí)體系中解析?HTML?會(huì)比較多一些,下文更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • python 解析html之BeautifulSoup

    python 解析html之BeautifulSoup

    項(xiàng)目里需要解析html,采用python語(yǔ)言實(shí)現(xiàn),發(fā)現(xiàn)了BeautifulSoup這個(gè)好用的東西,寫了一個(gè)程序,可能大家不知道,干什么用的,目的是讓大家知道如何使用 BeautifulSoup 當(dāng)然我這個(gè)是用都是很初級(jí)的,高級(jí)的使用,偶也沒(méi)有學(xué)會(huì)呢,太高深了
    2009-07-07
  • Pandas缺失值2種處理方式代碼實(shí)例

    Pandas缺失值2種處理方式代碼實(shí)例

    這篇文章主要介紹了Pandas缺失值2種處理方式代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Django中日期時(shí)間型字段進(jìn)行年月日時(shí)分秒分組統(tǒng)計(jì)

    Django中日期時(shí)間型字段進(jìn)行年月日時(shí)分秒分組統(tǒng)計(jì)

    這篇文章主要介紹了Django中日期時(shí)間型字段進(jìn)行年月日時(shí)分秒分組統(tǒng)計(jì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Python如何利用Shelve進(jìn)行數(shù)據(jù)存儲(chǔ)

    詳解Python如何利用Shelve進(jìn)行數(shù)據(jù)存儲(chǔ)

    Shelve是Python標(biāo)準(zhǔn)庫(kù)中的一個(gè)模塊,用于實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)持久化,本文將詳細(xì)介紹Shelve模塊的功能和用法,并提供豐富的示例代碼,希望對(duì)大家有所幫助
    2023-11-11

最新評(píng)論

巴里| 保靖县| 高碑店市| 科技| 右玉县| 嘉义县| 左云县| 汉中市| 罗城| 乌拉特前旗| 庆元县| 蓝山县| 永春县| 邢台县| 鄄城县| 三亚市| 邵东县| 玛纳斯县| 旬邑县| 汉沽区| 米脂县| 湘阴县| 湘西| 临安市| 永清县| 阿拉善盟| 平度市| 祁门县| 兖州市| 积石山| 咸丰县| 南江县| 和硕县| 梁山县| 正镶白旗| 浠水县| 东丰县| 水富县| 铜川市| 秦安县| 桃源县|