Skip to content

Commit 061a8fd

Browse files
committed
修改FASTAPI_SETTINGS_MODULE环境变量获取方式。
1 parent 057eee8 commit 061a8fd

File tree

23 files changed

+27
-32
lines changed

23 files changed

+27
-32
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ fast-tmp createsuperuser
106106
初始化项目之后,fast-tmp包里面有如下功能:
107107

108108
1. 全局settings管理
109-
2. crud生成器
110109

111110
### 全局settings管理
112111

fast_tmp/conf/__init__.py

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ class Settings(BaseSettings):
2727
MEDIA_PATH = "media"
2828
LOCAL_FILE: bool = False # 是否使用本地amis静态文件
2929

30+
class Config:
31+
env_file = ".env"
32+
3033
@validator("ACCESS_TOKEN_EXPIRE_MINUTES", pre=True, allow_reuse=True)
3134
def set_token_out(cls, v: Any) -> int:
3235
if isinstance(v, str):
@@ -57,26 +60,6 @@ def assemble_cors_origins(cls, v: Union[str, List[str]]) -> Union[List[str], str
5760
def __init__(self):
5861
super(Settings, self).__init__()
5962
workdir = os.getcwd() # 把工作路径加入到代码执行里面
60-
if not self.FASTAPI_SETTINGS_MODULE:
61-
import toml # type:ignore
62-
63-
pyproject_path = os.path.join(workdir, "pyproject.toml")
64-
if os.path.exists(pyproject_path):
65-
with open(pyproject_path, "r") as f:
66-
doc = toml.load(f)
67-
if doc.get("tool") and doc["tool"].get("aerich"):
68-
self.FASTAPI_SETTINGS_MODULE = doc["tool"]["aerich"]["tortoise_orm"]
69-
elif doc.get("tool") and doc["tool"].get("fast-tmp"):
70-
self.FASTAPI_SETTINGS_MODULE = doc["tool"]["fast-tmp"]["tortoise_orm"]
71-
else:
72-
logger.warning("envirment FASTAPI_SETTINGS_MODULE is null")
73-
# 去除后缀 只导入模块
74-
if self.FASTAPI_SETTINGS_MODULE.endswith(".TORTOISE_ORM"):
75-
self.FASTAPI_SETTINGS_MODULE = self.FASTAPI_SETTINGS_MODULE.replace(
76-
".TORTOISE_ORM", ""
77-
)
78-
else:
79-
logger.warning("envirment FASTAPI_SETTINGS_MODULE is null")
8063
try:
8164
for path in sys.path:
8265
if path == workdir:
@@ -85,7 +68,7 @@ def __init__(self):
8568
sys.path.append(workdir)
8669
mod = importlib.import_module(self.FASTAPI_SETTINGS_MODULE)
8770
except Exception as e:
88-
raise ImportError(f"导入settings报错:{e}")
71+
raise ImportError(f"load settings error:{e}")
8972

9073
for setting in dir(mod):
9174
if setting.isupper():
@@ -104,7 +87,7 @@ def _init_model(self):
10487

10588
warnings.warn("TORTOISE_ORM为空")
10689
else:
107-
init_model(self) # fixme 如果提示 has no models,请检查是否在执行导入settings之前先导入了fast_tmp.model
90+
init_model(self)
10891

10992

11093
settings = Settings()

fast_tmp_cli/tpl/project/src/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
FASTAPI_SETTINGS_MODULE={{cookiecutter.project_slug}}.settings

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/app.py renamed to fast_tmp_cli/tpl/project/src/app.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
import os
2-
3-
os.environ.setdefault("FASTAPI_SETTINGS_MODULE", "{{cookiecutter.project_slug}}.settings")# 请勿在此配置前面加 import
4-
51
from tortoise.contrib.fastapi import register_tortoise
62
from fast_tmp.conf import settings
73
from fast_tmp.admin.register import register_static_service
@@ -11,11 +7,11 @@
117
app = create_app()
128
app.title = "{{cookiecutter.project_slug}}"
139

14-
register_tortoise(app, config=settings.TORTOISE_ORM, generate_schemas=True)
10+
register_tortoise(app, config=settings.TORTOISE_ORM)
1511
if settings.DEBUG:
1612
register_static_service(app)
1713

1814
if __name__ == "__main__":
1915
import uvicorn # type:ignore
2016

21-
uvicorn.run(app, debug=True, port=8000, lifespan="on")
17+
uvicorn.run(app, port=8000, lifespan="on")

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/conftest.py renamed to fast_tmp_cli/tpl/project/src/conftest.py

File renamed without changes.

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/static/css/fontawesome.min.css renamed to fast_tmp_cli/tpl/project/src/static/css/fontawesome.min.css

File renamed without changes.

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/static/css/main.css renamed to fast_tmp_cli/tpl/project/src/static/css/main.css

File renamed without changes.

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/static/css/tabler.min.css renamed to fast_tmp_cli/tpl/project/src/static/css/tabler.min.css

File renamed without changes.

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/static/img/logo.svg renamed to fast_tmp_cli/tpl/project/src/static/img/logo.svg

File renamed without changes.

fast_tmp_cli/tpl/project/{{cookiecutter.project_slug}}/static/js/fontawesome.min.js renamed to fast_tmp_cli/tpl/project/src/static/js/fontawesome.min.js

File renamed without changes.

0 commit comments

Comments
 (0)