首页 > 解决方案 > Python flask RESTful:目录结构

问题描述

我对 python 和烧瓶相当陌生,我创建了一个身份验证系统,一个基于 JWT 令牌的身份验证。目前我的目录结构是:

注意:如果可能,请详细回答。

-Project
  -- venv (folder)
  -- models.py
  -- resources.py
  -- run.py
  -- views.py

由于名称是不言自明的,models.py 有一个名为 的类UserModel,在资源中,py 有许多类,如UserRegistration, UserLogin, UserLogoutAccess, UserLogoutRefresh, TokenRefresh, AllUsers

run.py具有服务器相​​关和应用程序初始化代码,并且端点资源在这里定义如下:

api.add_resource(resources.UserRegistration, '/registration')

我知道它很乱,但我也不知道 python Flask 约定,每个类是否应该有自己的文件,身份验证代码是否应该放在一个目录中,因为项目显然会增长。

我正在考虑以下目录结构:

-Project
  -- venv
  -- Authentication
      -- login.py
      -- registration.py
      -- logout.py
      -- userLogoutRefresh.py
      ....
      ....
  -- Models
      -- UserModel.py
      ....
      ....
  -- run.py

寻找建议。

标签: pythonflaskflask-restful

解决方案


这就是我通常如何构建我的 Flask 项目的方式:

-- Project
  -- app
    -- models
      -- user.py
      -- inventory.py
    -- views
    -- routes
    -- static
      -- css
      -- images
      -- js
    -- templates
    -- utils
    -- ..
    -- settings
      -- local.py
      -- staging.py
      -- prod.py
  -- migrations 
  -- docs
  -- tests
  -- manage.py

当项目增长时,这使我可以更灵活和结构化的代码。例如,对于较大的项目来说,拥有单个 models.py 可能会变得难以管理,其他项目也是如此。

此外,我更喜欢将虚拟环境保留在项目之外,因为不需要将其推送到存储库。

在纯 Rest API 项目中,您可能不需要它的某些部分,例如模板、静态等。


推荐阅读