我在每个项目的 pipelinev 虚拟环境中安装了 flake8。
flake8 文档指出:
在命令行中设置的值具有最高优先级,然后是项目配置文件中的值,然后是用户目录中的值,最后是默认值。
根据文档我创建了两个 .flake8 文件:
当我运行 flake8 时,它从本地文件中获取配置选项,但它完全忽略全局文件。
如何让 flake8 看到全局配置文件,这样我就不必在每个项目中重复一些配置选项?
我正在开发一个简单的 FastAPI 应用程序,并使用 Pydantic 来存储应用程序设置。
某些设置是从 Ansible 部署工具设置的环境变量填充的,但其他一些设置需要从单独的 env 文件中显式设置。
所以我有这个config.py
class Settings(BaseSettings):
# Project wide settings
PROJECT_MODE: str = getenv("PROJECT_MODE", "sandbox")
VERSION: str
class Config:
env_file = "config.txt"
Run Code Online (Sandbox Code Playgroud)
我有这个config.txt
VERSION="0.0.1"
Run Code Online (Sandbox Code Playgroud)
因此project_modeenv var 是由部署脚本设置的,并且version是从 env 文件设置的。原因是我们希望在所有项目中保持部署脚本相似,因此任何自定义变量都从项目特定的环境文件中填充。
但问题是,当我运行该应用程序时,它失败并显示:
pydantic.error_wrappers.ValidationError: 1 validation error for Settings
VERSION
field required (type=value_error.missing)
Run Code Online (Sandbox Code Playgroud)
那么如何从本地 ENV 文件填充 Pydantic 设置模型呢?
我有一个 FastAPI Web 应用程序,我想在其中使用模板语言。现在,为了使用 jinja2,我必须通过设置模板变量来指示模板文件夹所在的位置,如下所示:
templates = Jinja2Templates(directory="templates")
Run Code Online (Sandbox Code Playgroud)
我还有几个用于不同页面和用途的视图文件,例如home.py、about.py等db.py。
如果我设置一个模板变量一次main.py,然后将其导入到视图文件中,如下所示:
from main import templates
Run Code Online (Sandbox Code Playgroud)
我收到各种循环导入错误。所以我必须在每个视图文件中单独设置一个模板变量,这不是最佳的。
如何设置模板位置一次main.py,然后使所有视图文件都知道该位置?