优化项目管理

This commit is contained in:
zhangtao
2025-01-27 19:12:32 +08:00
parent 2fef375fb4
commit 99207cac3b
5 changed files with 78 additions and 233 deletions
+9 -62
View File
@@ -26,88 +26,35 @@ DOCS_URL = "/docs" # Swagger UI路径
REDOC_URL = "/redoc" # ReDoc路径
ROOT_PATH = "/api/v1" # API路由前缀
# JWT配置
SECRET_KEY = "vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=krylxcjq75vzps$" # JWT密钥
ALGORITHM = "HS256" # JWT算法
ACCESS_TOKEN_EXPIRE_MINUTES = 1440 # access_token过期时间(分钟)
REFRESH_TOKEN_EXPIRE_MINUTES = 10080 # refresh_token过期时间(分钟)
TOKEN_TYPE = "bearer" # token类型
JWT_REDIS_EXPIRE_MINUTES = 30 # redis缓存过期时间(分钟)
# 数据库配置
DATABASE_ECHO = False # 是否显示SQL日志
ECHO_POOL = False # 是否显示连接池日志
POOL_SIZE = 20 # 连接池大小
MAX_OVERFLOW = 10 # 最大溢出连接数
POOL_TIMEOUT = 30 # 连接超时时间(秒)
POOL_RECYCLE = 1800 # 连接回收时间(秒)
POOL_PRE_PING = True # 是否开启连接预检
FUTURE = True # 是否使用SQLAlchemy 2.0特性
AUTOCOMMIT = False # 是否自动提交
AUTOFETCH = False # 是否自动获取
EXPIRE_ON_COMMIT = False # 是否在提交时过期
DB_DRIVER = "sqlite" # sqlite、mysql、postgresql
# SQLite配置
SQLITE_DB_NAME = "dev_sql.db"
# Redis配置
REDIS_ENABLE = True
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MYSQL配置
SQL_DB_ENABLE = True # 是否启用数据库
MYSQL_HOST = "localhost"
MYSQL_USER = "root"
MYSQL_PASSWORD = 123456
MYSQL_HOST = "localhost"
MYSQL_PORT = 3306
MYSQL_DB_NAME = "fastapi_vue_admin"
# PostgreSQL配置
POSTGRESQL_HOST = "localhost"
POSTGRESQL_USER = "postgres"
POSTGRESQL_PASSWORD = 123456
POSTGRESQL_HOST = "localhost"
POSTGRESQL_PORT = 5432
POSTGRESQL_DB_NAME = "fastapi_vue_admin"
# Redis配置
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MongoDB配置
MONGO_DB_ENABLE = True
MONGO_DB_NAME = "fastapi_vue_admin"
MONGO_DB_HOST = "localhost"
MONGO_DB_PORT = 27017
MONGO_DB_NAME = "fastapi_vue_admin"
# 日志配置
BACKUPCOUNT = 10 # 日志文件备份数
WHEN = 'MIDNIGHT' # 日志分割时间
INTERVAL = 1 # 日志分割间隔
ENCODING = 'utf-8' # 日志编码
LOGGER_LEVEL = 'INFO' # 日志级别
LOGGER_FORMAT = '%(asctime)s - %(levelname)s - [%(name)s:%(filename)s:%(funcName)s:%(lineno)d] %(message)s' # 日志格式
# 请求中间件配置
OPERATION_LOG_RECORD = True # 是否记录操作日志
OPERATION_RECORD_METHOD = ["POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"] # 需要记录的请求方法
IGNORE_OPERATION_FUNCTION = ["get_captcha_for_login"] # 忽略记录的函数
# 跨域中间件配置
CORS_ORIGIN_ENABLE = True # 是否启用跨域
ALLOW_ORIGINS = ["*"] # 允许的域名列表
ALLOW_METHODS = ["*"] # 允许的HTTP方法
ALLOW_HEADERS = ["*"] # 允许的请求头
ALLOW_CREDENTIALS = True # 是否允许携带cookie
# Gzip压缩中间件配置
GZIP_ENABLE = True # 是否启用Gzip
GZIP_MIN_SIZE = 1000 # 最小压缩大小(字节)
GZIP_COMPRESS_LEVEL = 9 # 压缩级别(1-9)
# 验证码配置
CAPTCHA_ENABLE = True # 是否启用验证码
CAPTCHA_EXPIRE_SECONDS = 60 # 验证码过期时间(秒)
CAPTCHA_FONT_SIZE = 40 # 字体大小
# 上传配置
MAX_FILE_SIZE = 10485760 # 最大文件大小10 * 1024 * 1024(10MB)
LOGGER_LEVEL = 'DEBUG' # 日志级别
+11 -64
View File
@@ -7,7 +7,7 @@ ENVIRONMENT = "prod"
# 服务器配置
SERVER_HOST = 'localhost' # 允许访问的IP地址
SERVER_PORT = 8000 # 服务端口
RELOAD = True # 是否自动重启
RELOAD = False # 是否自动重启
WORKERS = 1 # 启动进程数
FACTORY = True # 是否使用异步模式
LIMIT_CONCURRENCY = 1000 # 最大并发连接数
@@ -17,7 +17,7 @@ TIMEOUT_KEEP_ALIVE = 5 # 保持连接时间(秒)
LIFESPAN = "on" # 生命周期模式
# 文档配置
DEBUG = True # 调试模式
DEBUG = False # 调试模式
TITLE = "🎉 Fastapi Vue Admin 🎉 -prod" # 文档标题
VERSION = '0.1.0' # 版本号
DESCRIPTION = "该项目是一个基于python的web服务框架,基于fastapi和sqlalchemy实现。" # 文档描述
@@ -26,88 +26,35 @@ DOCS_URL = "/docs" # Swagger UI路径
REDOC_URL = "/redoc" # ReDoc路径
ROOT_PATH = "/api/v1" # API路由前缀
# JWT配置
SECRET_KEY = "vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=krylxcjq75vzps$" # JWT密钥
ALGORITHM = "HS256" # JWT算法
ACCESS_TOKEN_EXPIRE_MINUTES = 1440 # access_token过期时间(分钟)
REFRESH_TOKEN_EXPIRE_MINUTES = 10080 # refresh_token过期时间(分钟)
TOKEN_TYPE = "bearer" # token类型
JWT_REDIS_EXPIRE_MINUTES = 30 # redis缓存过期时间(分钟)
# 数据库配置
DATABASE_ECHO = False # 是否显示SQL日志
ECHO_POOL = False # 是否显示连接池日志
POOL_SIZE = 20 # 连接池大小
MAX_OVERFLOW = 10 # 最大溢出连接数
POOL_TIMEOUT = 30 # 连接超时时间(秒)
POOL_RECYCLE = 1800 # 连接回收时间(秒)
POOL_PRE_PING = True # 是否开启连接预检
FUTURE = True # 是否使用SQLAlchemy 2.0特性
AUTOCOMMIT = False # 是否自动提交
AUTOFETCH = False # 是否自动获取
EXPIRE_ON_COMMIT = False # 是否在提交时过期
DB_DRIVER = "sqlite" # sqlite、mysql、postgresql
DB_DRIVER = "mysql" # sqlite、mysql、postgresql
# SQLite配置
SQLITE_DB_NAME = "dev_sql.db"
# Redis配置
REDIS_ENABLE = True
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MYSQL配置
SQL_DB_ENABLE = True # 是否启用数据库
MYSQL_HOST = "localhost"
MYSQL_USER = "root"
MYSQL_PASSWORD = 123456
MYSQL_HOST = "localhost"
MYSQL_PORT = 3306
MYSQL_DB_NAME = "fastapi_vue_admin"
# PostgreSQL配置
POSTGRESQL_HOST = "localhost"
POSTGRESQL_USER = "postgres"
POSTGRESQL_PASSWORD = 123456
POSTGRESQL_HOST = "localhost"
POSTGRESQL_PORT = 5432
POSTGRESQL_DB_NAME = "fastapi_vue_admin"
# Redis配置
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MongoDB配置
MONGO_DB_ENABLE = True
MONGO_DB_NAME = "fastapi_vue_admin"
MONGO_DB_HOST = "localhost"
MONGO_DB_PORT = 27017
MONGO_DB_NAME = "fastapi_vue_admin"
# 日志配置
BACKUPCOUNT = 10 # 日志文件备份数
WHEN = 'MIDNIGHT' # 日志分割时间
INTERVAL = 1 # 日志分割间隔
ENCODING = 'utf-8' # 日志编码
LOGGER_LEVEL = 'INFO' # 日志级别
LOGGER_FORMAT = '%(asctime)s - %(levelname)s - [%(name)s:%(filename)s:%(funcName)s:%(lineno)d] %(message)s' # 日志格式
# 请求中间件配置
OPERATION_LOG_RECORD = True # 是否记录操作日志
OPERATION_RECORD_METHOD = ["POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"] # 需要记录的请求方法
IGNORE_OPERATION_FUNCTION = ["get_captcha_for_login"] # 忽略记录的函数
# 跨域中间件配置
CORS_ORIGIN_ENABLE = True # 是否启用跨域
ALLOW_ORIGINS = ["*"] # 允许的域名列表
ALLOW_METHODS = ["*"] # 允许的HTTP方法
ALLOW_HEADERS = ["*"] # 允许的请求头
ALLOW_CREDENTIALS = True # 是否允许携带cookie
# Gzip压缩中间件配置
GZIP_ENABLE = True # 是否启用Gzip
GZIP_MIN_SIZE = 1000 # 最小压缩大小(字节)
GZIP_COMPRESS_LEVEL = 9 # 压缩级别(1-9)
# 验证码配置
CAPTCHA_ENABLE = True # 是否启用验证码
CAPTCHA_EXPIRE_SECONDS = 60 # 验证码过期时间(秒)
CAPTCHA_FONT_SIZE = 40 # 字体大小
# 上传配置
MAX_FILE_SIZE = 10485760 # 最大文件大小10 * 1024 * 1024(10MB)
+9 -62
View File
@@ -26,88 +26,35 @@ DOCS_URL = "/docs" # Swagger UI路径
REDOC_URL = "/redoc" # ReDoc路径
ROOT_PATH = "/api/v1" # API路由前缀
# JWT配置
SECRET_KEY = "vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=krylxcjq75vzps$" # JWT密钥
ALGORITHM = "HS256" # JWT算法
ACCESS_TOKEN_EXPIRE_MINUTES = 1440 # access_token过期时间(分钟)
REFRESH_TOKEN_EXPIRE_MINUTES = 10080 # refresh_token过期时间(分钟)
TOKEN_TYPE = "bearer" # token类型
JWT_REDIS_EXPIRE_MINUTES = 30 # redis缓存过期时间(分钟)
# 数据库配置
DATABASE_ECHO = False # 是否显示SQL日志
ECHO_POOL = False # 是否显示连接池日志
POOL_SIZE = 20 # 连接池大小
MAX_OVERFLOW = 10 # 最大溢出连接数
POOL_TIMEOUT = 30 # 连接超时时间(秒)
POOL_RECYCLE = 1800 # 连接回收时间(秒)
POOL_PRE_PING = True # 是否开启连接预检
FUTURE = True # 是否使用SQLAlchemy 2.0特性
AUTOCOMMIT = False # 是否自动提交
AUTOFETCH = False # 是否自动获取
EXPIRE_ON_COMMIT = False # 是否在提交时过期
DB_DRIVER = "sqlite" # sqlite、mysql、postgresql
# SQLite配置
SQLITE_DB_NAME = "dev_sql.db"
# Redis配置
REDIS_ENABLE = True
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MYSQL配置
SQL_DB_ENABLE = True # 是否启用数据库
MYSQL_HOST = "localhost"
MYSQL_USER = "root"
MYSQL_PASSWORD = 123456
MYSQL_HOST = "localhost"
MYSQL_PORT = 3306
MYSQL_DB_NAME = "fastapi_vue_admin"
# PostgreSQL配置
POSTGRESQL_HOST = "localhost"
POSTGRESQL_USER = "postgres"
POSTGRESQL_PASSWORD = 123456
POSTGRESQL_HOST = "localhost"
POSTGRESQL_PORT = 5432
POSTGRESQL_DB_NAME = "fastapi_vue_admin"
# Redis配置
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 1
# MongoDB配置
MONGO_DB_ENABLE = True
MONGO_DB_NAME = "fastapi_vue_admin"
MONGO_DB_HOST = "localhost"
MONGO_DB_NAME = "fastapi_vue_admin"
MONGO_DB_PORT = 27017
# 日志配置
BACKUPCOUNT = 10 # 日志文件备份数
WHEN = 'MIDNIGHT' # 日志分割时间
INTERVAL = 1 # 日志分割间隔
ENCODING = 'utf-8' # 日志编码
LOGGER_LEVEL = 'INFO' # 日志级别
LOGGER_FORMAT = '%(asctime)s - %(levelname)s - [%(name)s:%(filename)s:%(funcName)s:%(lineno)d] %(message)s' # 日志格式
# 请求中间件配置
OPERATION_LOG_RECORD = True # 是否记录操作日志
OPERATION_RECORD_METHOD = ["POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"] # 需要记录的请求方法
IGNORE_OPERATION_FUNCTION = ["get_captcha_for_login"] # 忽略记录的函数
# 跨域中间件配置
CORS_ORIGIN_ENABLE = True # 是否启用跨域
ALLOW_ORIGINS = ["*"] # 允许的域名列表
ALLOW_METHODS = ["*"] # 允许的HTTP方法
ALLOW_HEADERS = ["*"] # 允许的请求头
ALLOW_CREDENTIALS = True # 是否允许携带cookie
# Gzip压缩中间件配置
GZIP_ENABLE = True # 是否启用Gzip
GZIP_MIN_SIZE = 1000 # 最小压缩大小(字节)
GZIP_COMPRESS_LEVEL = 9 # 压缩级别(1-9)
# 验证码配置
CAPTCHA_ENABLE = True # 是否启用验证码
CAPTCHA_EXPIRE_SECONDS = 60 # 验证码过期时间(秒)
CAPTCHA_FONT_SIZE = 40 # 字体大小
# 上传配置
MAX_FILE_SIZE = 10485760 # 最大文件大小10 * 1024 * 1024(10MB)
LOGGER_LEVEL = 'DEBUG' # 日志级别
+49 -45
View File
@@ -5,7 +5,7 @@ from datetime import date
from functools import lru_cache
from pathlib import Path
from typing import Any, ClassVar, Dict, List, Optional, Union, Literal
from pydantic import MongoDsn, RedisDsn
from pydantic import MongoDsn, PostgresDsn, RedisDsn, MySQLDsn
from pydantic_settings import BaseSettings, SettingsConfigDict
from uvicorn.config import LifespanType
@@ -67,37 +67,38 @@ class Settings(BaseSettings):
# ================================================= #
# ******************** 跨域配置 ******************** #
# ================================================= #
CORS_ORIGIN_ENABLE: bool # 是否启用跨域
ALLOW_ORIGINS: List[str] # 允许的域名列表
ALLOW_METHODS: List[str] # 允许的HTTP方法
ALLOW_HEADERS: List[str] # 允许的请求头
ALLOW_CREDENTIALS: bool # 是否允许携带cookie
CORS_ORIGIN_ENABLE: bool = True # 是否启用跨域
ALLOW_ORIGINS: List[str] = ["*"] # 允许的域名列表
ALLOW_METHODS: List[str] = ["*"] # 允许的HTTP方法
ALLOW_HEADERS: List[str] = ["*"] # 允许的请求头
ALLOW_CREDENTIALS: bool = True # 是否允许携带cookie
# ================================================= #
# ******************* 登录认证配置 ****************** #
# ================================================= #
SECRET_KEY: str # JWT密钥
ALGORITHM: str # JWT算法
ACCESS_TOKEN_EXPIRE_MINUTES: int # access_token过期时间(分钟)
REFRESH_TOKEN_EXPIRE_MINUTES: int # refresh_token过期时间(分钟)
TOKEN_TYPE: str # token类型
JWT_REDIS_EXPIRE_MINUTES: int # redis缓存过期时间(分钟)
SECRET_KEY: str = "vgb0tnl9d58+6n-6h-ea&u^1#s0ccp!794=krylxcjq75vzps$" # JWT密钥
ALGORITHM: str = "HS256" # JWT算法
ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440 # access_token过期时间(分钟)
REFRESH_TOKEN_EXPIRE_MINUTES: int = 10080 # refresh_token过期时间(分钟)
TOKEN_TYPE: str = "bearer" # token类型
JWT_REDIS_EXPIRE_MINUTES: int = 30 # redis缓存过期时间(分钟)
# ================================================= #
# ******************** 数据库配置 ******************* #
# ================================================= #
SQL_DB_ENABLE: bool # 是否启用数据库
DATABASE_ECHO: bool # 是否显示SQL日志
ECHO_POOL: bool # 是否显示连接池日志
POOL_SIZE: int # 连接池大小
MAX_OVERFLOW: int # 最大溢出连接数
POOL_TIMEOUT: int # 连接超时时间(秒)
POOL_RECYCLE: int # 连接回收时间(秒)
POOL_PRE_PING: bool # 是否开启连接预检
FUTURE: bool # 是否使用SQLAlchemy 2.0特性
AUTOCOMMIT: bool # 是否自动提交
AUTOFETCH: bool # 是否自动获取
EXPIRE_ON_COMMIT: bool # 是否在提交时过期
SQL_DB_ENABLE: bool = True # 是否启用数据库
DATABASE_ECHO: bool = False # 是否显示SQL日志
ECHO_POOL: bool = False # 是否显示连接池日志
POOL_SIZE: int = 20 # 连接池大小
MAX_OVERFLOW: int = 10 # 最大溢出连接数
POOL_TIMEOUT: int = 30 # 连接超时时间(秒)
POOL_RECYCLE: int = 1800 # 连接回收时间(秒)
POOL_PRE_PING: bool = True # 是否开启连接预检
FUTURE: bool = True # 是否使用SQLAlchemy 2.0特性
AUTOCOMMIT: bool = False # 是否自动提交
AUTOFETCH: bool = False # 是否自动获取
EXPIRE_ON_COMMIT: bool = False # 是否在提交时过期
# SQLite数据库连接
DB_DRIVER: str
SQLITE_DB_NAME: str
@@ -119,7 +120,7 @@ class Settings(BaseSettings):
# ================================================= #
# ******************** MongoDB配置 ******************* #
# ================================================= #
MONGO_DB_ENABLE: bool # 是否启用MongoDB
MONGO_DB_ENABLE: bool = True # 是否启用MongoDB
MONGO_DB_HOST: str
MONGO_DB_PORT: int
MONGO_DB_NAME: str
@@ -127,7 +128,7 @@ class Settings(BaseSettings):
# ================================================= #
# ******************** Redis配置 ******************* #
# ================================================= #
REDIS_ENABLE: bool # 是否启用Redis
REDIS_ENABLE: bool = True # 是否启用Redis
REDIS_HOST: str
REDIS_PORT: int
REDIS_DB: int
@@ -135,32 +136,32 @@ class Settings(BaseSettings):
# ================================================= #
# ******************** 验证码配置 ******************* #
# ================================================= #
CAPTCHA_ENABLE: bool # 是否启用验证码
CAPTCHA_EXPIRE_SECONDS: int # 验证码过期时间(秒)
CAPTCHA_FONT_SIZE: int # 字体大小
CAPTCHA_ENABLE: bool = True # 是否启用验证码
CAPTCHA_EXPIRE_SECONDS: int = 60 # 验证码过期时间(秒)
CAPTCHA_FONT_SIZE: int = 40 # 字体大小
CAPTCHA_FONT_PATH: Path = 'static/assets/font/Arial.ttf' # 字体路径
# ================================================= #
# ********************* 日志配置 ******************* #
# ================================================= #
LOGGER_LEVEL: str # 日志级别
LOGGER_NAME: str = date.today().strftime(r'%Y-%m-%d.log') # 日志文件名
LOGGER_FILEPATH: Path = BASE_DIR.joinpath('logs', LOGGER_NAME) # 日志文件路径
BACKUPCOUNT: int # 日志文件备份数
WHEN: str # 日志分割时间
INTERVAL: int # 日志分割间隔
ENCODING: str # 日志编码
LOGGER_LEVEL: str # 日志级别
LOGGER_FORMAT: str # 日志格式
OPERATION_LOG_RECORD: bool # 是否记录操作日志
OPERATION_RECORD_METHOD: List[str] # 需要记录的请求方法
IGNORE_OPERATION_FUNCTION: List[str] # 忽略记录的函数
BACKUPCOUNT: int = 10 # 日志文件备份数
WHEN: str = 'MIDNIGHT' # 日志分割时间
INTERVAL: int = 1 # 日志分割间隔
ENCODING: str = 'utf-8' # 日志编码
LOGGER_FORMAT: str = '%(asctime)s - %(levelname)s - [%(name)s:%(filename)s:%(funcName)s:%(lineno)d] %(message)s' # 日志格式
OPERATION_LOG_RECORD: bool = True # 是否记录操作日志
OPERATION_RECORD_METHOD: List[str] = ["POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"] # 需要记录的请求方法
IGNORE_OPERATION_FUNCTION: List[str] = ["get_captcha_for_login"] # 忽略记录的函数
# ================================================= #
# ******************* Gzip压缩配置 ******************* #
# ================================================= #
GZIP_ENABLE: bool # 是否启用Gzip
GZIP_MIN_SIZE: int # 最小压缩大小(字节)
GZIP_COMPRESS_LEVEL: int # 压缩级别(1-9)
GZIP_ENABLE: bool = True # 是否启用Gzip
GZIP_MIN_SIZE: int = 1000 # 最小压缩大小(字节)
GZIP_COMPRESS_LEVEL: int = 9 # 压缩级别(1-9)
# ================================================= #
# ***************** 演示模型配置 ***************** #
@@ -198,7 +199,7 @@ class Settings(BaseSettings):
# 视频
'.mp4', '.avi', '.rmvb'
]
MAX_FILE_SIZE: int # 最大文件大小(10MB)
MAX_FILE_SIZE: int = 10 * 1024 * 1024 # 最大文件大小(10MB)
# ================================================= #
# ***************** Swagger配置 ***************** #
@@ -290,11 +291,14 @@ class Settings(BaseSettings):
if self.DB_DRIVER not in supported_db_drivers:
raise ValueError(f"数据库驱动不支持: {self.DB_DRIVER}, 请选择 {supported_db_drivers}")
if self.DB_DRIVER == "sqlite":
return f"sqlite+aiosqlite:///{self.BASE_DIR.joinpath(self.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
SQLITE_URI: str = f"sqlite+aiosqlite:///{self.BASE_DIR.joinpath(self.SQLITE_DB_NAME)}?characterEncoding=UTF-8"
return SQLITE_URI
elif self.DB_DRIVER == "mysql":
return f"mysql+asyncmy://{self.MYSQL_USER}:{self.MYSQL_PASSWORD}@{self.MYSQL_HOST}:{self.MYSQL_PORT}/{self.MYSQL_DB_NAME}?charset=utf8mb4"
MYSQL_URI: MySQLDsn = f"mysql+asyncmy://{self.MYSQL_USER}:{self.MYSQL_PASSWORD}@{self.MYSQL_HOST}:{self.MYSQL_PORT}/{self.MYSQL_DB_NAME}?charset=utf8mb4"
return MYSQL_URI
else:
return f"postgresql+asyncpg://{self.POSTGRESQL_USER}:{self.POSTGRESQL_PASSWORD}@{self.POSTGRESQL_HOST}:{self.POSTGRESQL_PORT}/{self.POSTGRESQL_DB_NAME}"
POSRGRES_URI: PostgresDsn = f"postgresql+asyncpg://{self.POSTGRESQL_USER}:{self.POSTGRESQL_PASSWORD}@{self.POSTGRESQL_HOST}:{self.POSTGRESQL_PORT}/{self.POSTGRESQL_DB_NAME}"
return POSRGRES_URI
@property
def get_redis_uri(self) -> RedisDsn:
Binary file not shown.