[fastapi_config]
host = 127.0.0.1
debug = True
title = "FastAPI"
description = "FastAPI文档明细描述"
version = v1.0.0
[redis]
ip = 127.0.0.1
port = 6379
password = 123456
#!/usr/bin/evn python
# -*- coding: utf-8 -*-
from fastapi import FastAPI
import configparser
config = configparser.ConfigParser()
config.read('conf.ini', encoding='utf-8')
app = FastAPI(
debug=bool(config.get('fastapi_config', 'debug')),
title=config.get('fastapi_config', 'title'),
description=config.get('fastapi_config', 'description'),
version=config.get('fastapi_config', 'version'),
)
if __name__ == "__main__":
import uvicorn
import os
app_modeel_name = os.path.basename(__file__).replace(".py", "")
print(app_modeel_name)
uvicorn.run(f"{app_modeel_name}:app", host= config.get('fastapi_config', 'host'), reload=True)
DEBUG=true
TITLE="FastAPI"
DESCRIPTION="FastAPI文档明细描述--aa"
VERSION="v1.0.0"
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from typing import Optional
from fastapi import FastAPI
from pydantic_settings import BaseSettings
#from pydantic.tools import lru_cache
from functools import lru_cache
from pydantic import field_validator # 正确导入 field_validator
class Settings(BaseSettings):
debug: bool = False
title: str
description: str
version: str
class Config:
env_file = ".env"
env_file_encoding = 'utf-8'
#@field_validator("version", pre=True)
@field_validator("version", mode="before") # 使用 mode="before" 替代 pre=True
def version_len_check(cls, v: str) -> Optional[str]:
if v and len(v) == 0:
return None
return v
@lru_cache()
def get_settings():
return Settings()
settings = Settings()
print(settings.debug)
print(settings.title)
print(settings.description)
print(settings.version)
settings = Settings(_env_file='.env', _env_file_encoding='utf-8')
# app = FastAPI(
# debug=settings.debug,
# title=settings.title,
# description=settings.description,
# version=settings.version,
# )
app = FastAPI(
debug= get_settings().debug,
title= get_settings().title,
description= get_settings().description,
version= get_settings().version
)
if __name__ == "__main__":
import uvicorn
import os
app_modeel_name = os.path.basename(__file__).replace(".py", "")
print(app_modeel_name)
uvicorn.run(f"{app_modeel_name}:app", host='127.0.0.1', reload=True)