urban-investment-research/Context/common.py

61 lines
2.3 KiB
Python

# 全局使用的服务放到这里初始化,作为项目配置输入的入口
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"],
conf["mongo"].get('user'),
conf["mongo"].get("password"))
# 邮箱验证码工具类
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'], mg_db)
# 预警通接口
yujingtong_api = YujingtongApi(conf['yujingtong']['token'], mg_db)