from functools import lru_cache
DATABASE_URL_TEMPLATE = (
"mssql+pyodbc://{username}:{password}@{server_name}/{database_name}?driver=ODBC Driver 17 for SQL Server"
)
@lru_cache
def get_db_url(database_name: str, charset: str = None) -> str:
"""
@Description {description}
- param database_name :{str} 数据库名称
- param charset :{str} utf8|
@returns `{str}` 数据库的连接url
"""
config = get_settings()
res = DATABASE_URL_TEMPLATE.format(
username=config.db_user_name,
password=config.db_pass_word,
server_name=f"{config.db_host}:{config.db_port}",
database_name=database_name,
)
if charset:
res = res + f"{charset}"
return res