MongodbClient.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # coding: utf-8
  2. __author__ = 'Maps'
  3. from pymongo import MongoClient
  4. import random
  5. import json
  6. class MongodbClient(object):
  7. def __init__(self, name, host, port):
  8. self.name = name
  9. self.client = MongoClient(host, port)
  10. self.db = self.client.proxy
  11. def changeTable(self, name):
  12. self.name = name
  13. def get(self):
  14. proxy = self.getAll()
  15. return random.choice(proxy) if proxy else None
  16. def put(self, value):
  17. if self.db[self.name].find_one({'proxy': value}):
  18. return None
  19. else:
  20. self.db[self.name].insert({'proxy': value})
  21. def pop(self):
  22. value = self.get()
  23. if value:
  24. self.delete(value)
  25. return value
  26. def delete(self, value):
  27. self.db[self.name].remove({'proxy': value})
  28. def getAll(self):
  29. return [p['proxy'] for p in self.db[self.name].find()]
  30. def clean(self):
  31. self.client.drop_database('proxy')
  32. def delete_all(self):
  33. self.db[self.name].remove()
  34. if __name__ == "__main__":
  35. db = MongodbClient('first', 'localhost', 27017)
  36. db.put('127.0.0.1:1')
  37. db2 = MongodbClient('second', 'localhost', 27017)
  38. db2.put('127.0.0.1:2')
  39. db.clean()