nacos_config.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import json
  2. import platform
  3. from flask import Flask
  4. from nacos import NacosClient
  5. app = Flask(__name__)
  6. config_json = {
  7. "local": {
  8. "address": "192.168.3.80:8848",
  9. "namespace": "dev",
  10. "username": "nacos",
  11. "password": "nacos",
  12. "data_id": "python-mendunr",
  13. "group": "DEFAULT_GROUP"
  14. },
  15. "production": {
  16. "address": "127.0.0.1:8848",
  17. "namespace": "dev",
  18. "username": "nacos",
  19. "password": "2099citu##$$**.com",
  20. "data_id": "python-mendunr",
  21. "group": "DEFAULT_GROUP"
  22. }
  23. }
  24. class NacosConfig:
  25. def __init__(self, environment='local'):
  26. env_config = config_json[environment]
  27. self.SERVER_ADDRESSES = env_config['address']
  28. self.NAMESPACE = env_config['namespace']
  29. self.USERNAME = env_config['username']
  30. self.PASSWORD = env_config['password']
  31. self.data_id = env_config['data_id']
  32. self.group = env_config['group']
  33. self.client = NacosClient(server_addresses=self.SERVER_ADDRESSES, namespace=self.NAMESPACE,
  34. username=self.USERNAME, password=self.PASSWORD)
  35. self.config_data = None
  36. def load_config(self):
  37. """从Nacos加载配置"""
  38. config_str = self.client.get_config(data_id=self.data_id, group=self.group)
  39. self.config_data = json.loads(config_str) if config_str else {}
  40. return self.config_data
  41. def get_config(self):
  42. """返回当前加载的配置数据"""
  43. if self.config_data is None:
  44. self.load_config()
  45. return self.config_data
  46. # 根据操作系统选择环境
  47. plat = platform.system().lower()
  48. environment = 'local' if plat == 'windows' else 'production'
  49. nacos_config = NacosConfig(environment=environment)
  50. configs = nacos_config.get_config()
  51. if __name__ == '__main__':
  52. app.run(debug=True)