# 全局使用的服务放到这里初始化,作为项目配置输入的入口 from logging import getLogger from sqlalchemy.orm import declarative_base from ThirdPartyApi.Tianyancha.Apis import TianyanchaApi from ThirdPartyApi.Yujingtong.Apis import YujingtongApi from Utils.AuthUtils import AuthUtil, TokenDataModel from Utils.MongoUtils import MongoConnect from Utils.RedisUtils import RedisPool from Utils.SqlAlchemyUtils import SqlalchemyConnect from configparser import ConfigParser from Utils.VerifyCodeUtils import EmailCodeVerify, ImageCaptchaVerify, PhoneVerifyCode from Utils.PhoneMsgUtils import PhoneMsgSend # 日志 uvicorn_log = getLogger('uvicorn') # 配置数据 conf = ConfigParser() conf.read("Config/common.ini", encoding='utf-8-sig') # redis连接池 redis_pool = RedisPool(host=conf['redis']['host'], port=int(conf['redis']['port'])) redis_pool.connect() # 共用mysql数据库 common_db_base = declarative_base() common_db = SqlalchemyConnect(common_db_base, host=conf['mysql']['host'], user=conf['mysql']['user'], password=conf['mysql']['password'], db=conf['mysql']['db']) # mongo db mg_db = MongoConnect(conf["mongo"]["host"], int(conf["mongo"]["port"]), conf["mongo"]["db"]) # 邮箱验证码工具类 email_code_verify = EmailCodeVerify(redis_pool, conf['email']['api'], conf['email']['sender']) # 图片验证码工具类 image_captcha_verify = ImageCaptchaVerify(redis_pool) # 权限验证工具类 auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel) phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'], conf['hw_msg']['app_key'], conf['hw_msg']['app_secret'], conf['hw_msg']['sender'], conf['hw_msg']['template_id'], conf['hw_msg']['signature'] ) phone_verify_code = PhoneVerifyCode(redis_pool, phone_msg_send) # 天眼查接口 tianyancha_api = TianyanchaApi(conf['tianyancha']['token']) # 预警通接口 yujingtong_api = YujingtongApi(conf['yujingtong']['token'])