我对python和flask相当陌生,我创建了一个身份验证系统,一个基于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
正在寻找建议。
答案 0 :(得分:1)
这是我通常构造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
这使我在项目发展时拥有了更加灵活和结构化的代码。例如,对于大型项目,只有一个model.py可能变得难以管理,其他项目也是如此。
此外,我更喜欢将虚拟环境保留在项目外部,因为不需要将其推送到存储库中。
在纯Rest API项目中,您可能不需要它的某些部分,例如模板,静态等。