cbd_photo_local.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import os
  2. import sys
  3. import time
  4. import django
  5. local_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  6. print(local_path)
  7. if local_path not in sys.path:
  8. sys.path.append(local_path)
  9. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kedong.settings")
  10. django.setup()
  11. from django.conf import settings
  12. from smartfarming.models.device import MongoDevice, MongoCBDData
  13. from smartfarming.models.worm_forecast import MongoCBDphoto
  14. import json
  15. import requests
  16. import pymongo
  17. from urllib import parse
  18. from kedong.settings import MEDIA_ROOT
  19. my_client = pymongo.MongoClient(host="8.136.98.49", port=27017, username="root", password="yfkj@6020")
  20. my_col = my_client['smartfarming']['sa_device']
  21. scd_device = {
  22. "866547058627400",
  23. "866547058637276",
  24. "866547058633663",
  25. "866547058613921"
  26. }
  27. def dsj_qxz_conf_info():
  28. cbd_photo = MongoCBDphoto.objects.all()
  29. for i in cbd_photo:
  30. device = MongoDevice.objects.get(id=i.device_id)
  31. device_id = device.device_id
  32. addr = "https://bigdata-image.oss-cn-hangzhou.aliyuncs.com/Basics/cbd/" + i.addr
  33. cbd_path = os.path.join(MEDIA_ROOT, f"cbd/{device_id}")
  34. os.makedirs(cbd_path) if not os.path.exists(cbd_path) else None
  35. file_name = (i.addr).split("/")[-1]
  36. local_addr = os.path.join(cbd_path, file_name)
  37. response = requests.get(addr, timeout=2)
  38. tb = ""
  39. try:
  40. if int(response.status_code) == 200:
  41. with open(local_addr, "wb") as f:
  42. f.write(response.content)
  43. tb = f"/media/cbd/{device_id}/{file_name}"
  44. except Exception as e:
  45. print(e)
  46. i.addr = tb
  47. indentyfy_addr = "https://bigdata-image.oss-cn-hangzhou.aliyuncs.com/Basics/cbd/" + i.indentify_photo
  48. indentyfy_path = os.path.join(MEDIA_ROOT, f"result/cbd/{device_id}")
  49. os.makedirs(indentyfy_path) if not os.path.exists(indentyfy_path) else None
  50. indentyfy_file_name = (i.indentify_photo).split("/")[-1]
  51. indentyfy_local_addr = os.path.join(indentyfy_path, indentyfy_file_name)
  52. response = requests.get(indentyfy_addr, timeout=2)
  53. indentyfy_tb = ""
  54. try:
  55. if int(response.status_code) == 200:
  56. with open(indentyfy_local_addr, "wb") as f:
  57. f.write(response.content)
  58. indentyfy_tb = f"/media/result/cbd/{device_id}/{indentyfy_file_name}"
  59. except Exception as e:
  60. print(e)
  61. i.indentify_photo = indentyfy_tb
  62. i.save()
  63. if __name__ == "__main__":
  64. dsj_qxz_conf_info()