由网友(狂犇de蜗牛)分享简介:我要解决的问题:目录的好名称,以便它们的用途明确。将所有项目文件(包括Viralenv)保存在一个位置,因此我可以轻松地复制、移动、存档、删除整个项目或估算磁盘空间使用率。创建某些选定文件集的多个副本,例如整个应用程序、存储库或虚拟环境,同时保留我不想克隆的其他文件。只需通过rsyncing将正确的文件集...
我要解决的问题:
目录的好名称,以便它们的用途明确。 将所有项目文件(包括Viralenv)保存在一个位置,因此我 可以轻松地复制、移动、存档、删除整个项目或估算磁盘 空间使用率。 创建某些选定文件集的多个副本,例如整个 应用程序、存储库或虚拟环境,同时保留 我不想克隆的其他文件。 只需通过rsyncing将正确的文件集部署到服务器 选择了一个目录。 很好地处理了前端和后端。推荐答案
哈莎已经提到了我的project generator,但我认为它可以帮助未来的读者解释它背后的想法。
如果您要为您的前端提供服务,请使用纱线或NPM之类的服务。你不应该担心他们之间的结构。使用类似axios或Java脚本的FETCH之类的东西,您可以轻松地从任何地方与您的后端进行对话。
说到构建后端,如果你想用JJJA呈现模板,你可以有一些接近MVC模式的东西。
your_project
├── __init__.py
├── main.py
├── core
│ ├── models
│ │ ├── database.py
│ │ └── __init__.py
│ ├── schemas
│ │ ├── __init__.py
│ │ └── schema.py
│ └── settings.py
├── tests
│ ├── __init__.py
│ └── v1
│ ├── __init__.py
│ └── test_v1.py
└── v1
├── api.py
├── endpoints
│ ├── endpoint.py
│ └── __init__.py
└── __init__.py
通过随处使用__init__
,我们可以像Django一样从整个应用程序访问变量。
让我们将文件夹分成几个部分:
核心 型号 datase.py 架构 users.py 某物.py settings.py 视图(如果要呈现模板,请添加此选项) v1_views.py v2_views.py 测试 v1 v2型号
它适用于您的数据库模型,通过执行此操作,您可以从v1和v2导入相同的数据库会话或对象。
架构
架构是您的PYDANIC模型,我们之所以称其为架构,是因为它实际上用于创建OpenAPI架构,因为FastAPI基于OpenAPI规范,我们在任何地方都使用架构,从Swagger生成到终结点的预期请求正文。
settings.py
它适用于Pydantic's Settings Management,它非常有用,您可以使用相同的变量而无需重新声明它,以了解它如何对您有用Settings and Environment Variables
视图
这是可选的,如果你打算用JJJA渲染你的前端,你可以有接近MVC模式的东西
核心 视图 v1_views.py v2_views.py如果要添加视图,则如下所示。
测试
最好将测试放在后端文件夹中。
接口
通过APIRout独立创建它们,而不是将您的所有API收集到一个文件中。
备注
您可以对所有导入使用绝对导入,因为我们在任何地方都使用__init__
,请参阅Python's packaging文档。
因此假设您正在尝试从v2导入v1的endpoint t.py,您只需执行
from my_project.v1.endpoints.endpoint import something
相关推荐
最新文章