__init__.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import json
  2. import logging
  3. import os
  4. from typing import Dict
  5. conf: Dict[str, any] = {
  6. "DEBUG_PROFILE": False,
  7. "LOG_STDERR": True,
  8. "LOG_LEVEL": logging.INFO,
  9. "LOG_HOME": "",
  10. "LOG_FORMAT": "[%(levelname)s]:%(name)s:%(asctime)s "
  11. "(%(filename)s:%(lineno)d %(funcName)s) "
  12. "%(process)d %(thread)d "
  13. "%(message)s",
  14. "SECRET_KEY": "HTalk-R-Salt",
  15. "SQLALCHEMY_DATABASE_URI": "mysql+pymysql://root:12345678@localhost:3306/htalk",
  16. "SQLALCHEMY_TRACK_MODIFICATIONS": False,
  17. "LOGO": "icon.svg",
  18. "WEBSITE_NAME": "HTalk",
  19. "WEBSITE_TITLE": "HTalk-优秀的用户交流网站",
  20. "MAIL_SERVER": "",
  21. "MAIL_PORT": "",
  22. "MAIL_USE_TLS": False,
  23. "MAIL_USE_SSL": False,
  24. "MAIL_PASSWORD": "",
  25. "MAIL_USERNAME": "",
  26. "MAIL_PREFIX": "",
  27. "MAIL_SENDER": "",
  28. }
  29. def configure(conf_file: str, encoding="utf-8"):
  30. """ 运行配置程序, 该函数需要在其他模块被执行前调用 """
  31. with open(conf_file, mode="r", encoding=encoding) as f:
  32. json_str = f.read()
  33. conf.update(json.loads(json_str))
  34. if type(conf["LOG_LEVEL"]) is str:
  35. conf["LOG_LEVEL"] = {"debug": logging.DEBUG,
  36. "info": logging.INFO,
  37. "warning": logging.WARNING,
  38. "error": logging.ERROR}.get(conf["LOG_LEVEL"])
  39. if len(conf["LOG_HOME"]) > 0:
  40. os.makedirs(conf["LOG_HOME"], exist_ok=True)