Flask_water_server.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import psycopg2
  2. import PGDB_Read
  3. import requests
  4. import json
  5. from writeDataToRealtimeData import upsert_realtime_data
  6. def calc_water_quality():
  7. nm_values = (
  8. 'lfgawqyq_plc3_Tag17',
  9. 'lfgawqyq_plc3_Tag22',
  10. 'lfgawqyq_plc3_Tag20',
  11. 'lfgawqyq_plc10_Tag45',
  12. 'lfgawqyq_plc10_Tag43',
  13. 'lfgawqyq_plc10_Tag52',
  14. 'lfgawqyq_plc10_Tag50',
  15. 'lfgawqyq_plc10_Tag51',
  16. 'lfgawqyq_plc10_Tag53',
  17. )
  18. # 连接到数据库
  19. with open('db_params.json', 'r') as f:
  20. db_params = json.load(f)
  21. db_params = db_params['test']
  22. # 建立连接
  23. conn = psycopg2.connect(**db_params)
  24. cursor = conn.cursor()
  25. json_data = PGDB_Read.query_database(cursor, nm_values)
  26. print(json_data)
  27. # 目标 URL
  28. url = 'http://localhost:8087/water_quality'
  29. # 发送 POST 请求
  30. response = requests.post(url, data=json_data, headers={'Content-Type': 'application/json'})
  31. # 打印响应内容
  32. result = response.json()
  33. write_data_list = [
  34. 'lfgawqyq_plc11_Tag23',
  35. 'lfgawqyq_plc11_Tag124',
  36. 'lfgawqyq_plc11_Tag25',
  37. 'lfgawqyq_plc11_Tag122',
  38. 'lfgawqyq_xn_cscod',
  39. 'lfgawqyq_xn_cstn',
  40. ]
  41. # 使用字典推导式将标签和值对应起来
  42. data_mapping = {tag: value for tag, value in zip(write_data_list, result)}
  43. # 打印结果字典
  44. upsert_realtime_data(cursor, data_mapping)
  45. # 关闭游标和连接
  46. cursor.close()
  47. conn.close()
  48. return json.dumps(data_mapping)