添加sqlalchemy_utils

This commit is contained in:
wcq 2023-06-12 17:02:26 +08:00
parent e01cc54b8a
commit d78642b413
3 changed files with 34 additions and 20 deletions

View File

@ -12,6 +12,15 @@ from Utils.VerifyCodeUtils import EmailCodeVerify, ImageCaptchaVerify, PhoneVeri
from pydantic import BaseModel
from typing import Optional
# 权限验证工具类
# 日志
uvicorn_log = getLogger('uvicorn')
# 配置数据
conf = ConfigParser()
conf.read("Config/common.ini", encoding='utf-8-sig')
class CompanyUserTokenDataModel(BaseModel):
id: Optional[str]
@ -33,12 +42,20 @@ class AdminUserTokenDataModel(BaseModel):
phone: Optional[str]
# 日志
uvicorn_log = getLogger('uvicorn')
auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel)
# 管理端用户权限
admin_user_auth_util = AuthUtil[AdminUserTokenDataModel](secret_key=conf['auth']['admin_user_jwt_key'],
tokenDataModel=AdminUserTokenDataModel)
# 企业用户权限
company_user_auth_util = AuthUtil[CompanyUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'],
tokenDataModel=CompanyUserTokenDataModel)
# 协会用户权限
institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel](
secret_key=conf['auth']['institution_user_jwt_key'],
tokenDataModel=InstitutionUserTokenDataModel)
##############################################################
# 配置数据
conf = ConfigParser()
conf.read("Config/common.ini", encoding='utf-8-sig')
# redis连接池
redis_pool = RedisPool(host=conf['redis']['host'], port=int(conf['redis']['port']))
@ -51,8 +68,6 @@ common_db = SqlalchemyConnect(common_db_base, host=conf['mysql']['host'],
password=conf['mysql']['password'],
db=conf['mysql']['db'])
# mongo db
# mg_db = MongoConnect(conf["mongo"]["host"], int(conf["mongo"]["port"]), conf["mongo"]["db"])
# mongo db
mg_db = MongoConnect(conf["mongo"]["host"], int(conf["mongo"]["port"]),
conf["mongo"]["db"],
@ -64,15 +79,7 @@ email_code_verify = EmailCodeVerify(redis_pool, conf['email']['api'], conf['emai
# 图片验证码工具类
image_captcha_verify = ImageCaptchaVerify(redis_pool)
# 权限验证工具类
auth_util = AuthUtil[TokenDataModel](secret_key=conf['auth']['jwt_key'], tokenDataModel=TokenDataModel)
admin_user_auth_util = AuthUtil[AdminUserTokenDataModel](secret_key=conf['auth']['admin_user_jwt_key'], tokenDataModel=AdminUserTokenDataModel)
company_user_auth_util = AuthUtil[CompanyUserTokenDataModel](secret_key=conf['auth']['company_user_jwt_key'],
tokenDataModel=CompanyUserTokenDataModel)
institution_user_auth_util = AuthUtil[InstitutionUserTokenDataModel](
secret_key=conf['auth']['institution_user_jwt_key'],
tokenDataModel=InstitutionUserTokenDataModel)
# 短信发送工具
phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'],
conf['hw_msg']['app_key'],
conf['hw_msg']['app_secret'],
@ -80,8 +87,11 @@ phone_msg_send = PhoneMsgSend(conf['hw_msg']['url'],
conf['hw_msg']['template_id'],
conf['hw_msg']['signature']
)
# 天眼查接口
tianyancha_api = TianyanchaApi(conf['tianyancha']['token'], mongo_connect=mg_db)
# 短信验证码工具
phone_verify_code = PhoneVerifyCode(redis_pool, phone_msg_send)
# 天眼查接口
tianyancha_api = TianyanchaApi(conf['tianyancha']['token'], mongo_connect=mg_db)
# 全局配置

View File

@ -39,7 +39,6 @@ class TianyanchaApi:
"""
天眼查接口
"""
def __init__(self, token: str,
mongo_connect: MongoConnect = None,
list_max_count=500,

View File

@ -5,7 +5,7 @@ from sqlalchemy import create_engine, Column, and_, asc, desc, func
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, Session, Query
from sqlalchemy_utils import database_exists, create_database
from sqlalchemy_utils import database_exists, create_database, get_columns, get_column_key
class SqlalchemyConnect:
@ -68,6 +68,10 @@ class SqlalchemyConnect:
yield db
def get_model_column_keys(model):
return [get_column_key(model, item) for item in get_columns(model)]
# 通用查询接口
QueryType = Literal['=', '==', '>', '>=', '<', '<=', 'in', 'like', 'range', "find_in_set"]
@ -87,6 +91,7 @@ class OrderParam(BaseModel):
class QueryParams(BaseModel):
param_list: Optional[List[QueryParam]]
order: Optional[OrderParam]
ex_include: Optional[List[str]]
page: int
page_size: int