我刚刚创建了一个烧瓶应用程序,到目前为止,我的“Hello world!”有一个路由器。模板。Flask应用程序中的常用文件夹/文件结构
我想添加一些(很多)更多的功能,但我不知道如何构建应用程序目录。
构建Flask应用程序的最常用方法是什么?例如,我应该为我的所有路线创建一个routes.py
吗? SQLAlchemy的东西去哪了? 模型应该在models.py
?
我刚刚创建了一个烧瓶应用程序,到目前为止,我的“Hello world!”有一个路由器。模板。Flask应用程序中的常用文件夹/文件结构
我想添加一些(很多)更多的功能,但我不知道如何构建应用程序目录。
构建Flask应用程序的最常用方法是什么?例如,我应该为我的所有路线创建一个routes.py
吗? SQLAlchemy的东西去哪了? 模型应该在models.py
?
您应该查看Flask文档的Patterns部分中的Larger Applications页面:http://flask.pocoo.org/docs/patterns/packages/。这似乎是大多数人在应用程序调用包而不是模块时遵循的模型。我相信views.py
就是你所说的routes.py
。之后,模型将在models.py
,形式将进入forms.py
等
我认为烧瓶是微观框架,现在你必须决定如何创建文件和文件夹。
我用这样的方式:
这是附近的Django结构
我建议你看到一些项目给你你想要什么
您可以通过这里的18.11模板,得到启发,启动你的应用程序开发
FlaskApp目录的示例:
yourapp/
/yourapp
/run.py
/config.py
/yourapp
/__init__.py
/views.py
/models.py
/static/
/main.css
/templates/
/base.html
/requirements.txt
/yourappenv
run.py
- 包含将导入应用程序并启动开发服务器的实际python代码。
config.py
- 为您的应用程序存储配置。
__init__.py
- 初始化您的应用程序,创建一个Flask应用程序实例。
views.py
- 这是定义routes
的地方。
models.py
- 这是您为应用程序定义模型的地方。
static
- 包含静态文件,即CSS,Javascript,图像
templates
- 这是您存储您的html
模板的位置即index.html
,layout.html
requirements.txt
- 这是您存储包依赖关系,您可以使用pip
yourappenv
- 你的虚拟环境对于发展
对于'require.txt'和'venv'。 –
我想说,如果你分割应用程序中使用分区,而不是功能结构。 我提倡这一点,因为您在任何时候都更有可能在这些部门组件中的一个上工作。
这种类型的结构非常适合市场或SaaS应用程序,其中不同的用户组使用不同类型的视图。 API only flask应用程序我可能会使用功能分割。
以下是来自Flask Blueprints的示例。蓝图基本上是文件化的建议,如何将Flask应用程序拆分为更易于管理的部分。更多信息,请访问:http://exploreflask.com/en/latest/blueprints.html
以下是分割分割的示例。了解每个功能如何组合在一起。
yourapp/
__init__.py
admin/
__init__.py
views.py
static/
templates/
home/
__init__.py
views.py
static/
templates/
control_panel/
__init__.py
views.py
static/
templates/
models.py
这里是功能实例>
yourapp/
__init__.py
static/
templates/
home/
control_panel/
admin/
views/
__init__.py
home.py
control_panel.py
admin.py
models.py
我不明白的是,为什么我们只有一个文件,为所有的车型? “每档一档”练习呢?如果某些模型相当大?我们是否应该将一些逻辑转移到其他模块中?而且,如果我想让我的模型处于单独的文件中,我应该只创建一个模型“模型”?谢谢! – lime
@lime,当有更多的模型时如何构建项目?我可以帮助我。 –
@lime我不是“每个文件一个类的粉丝”。我发现更长,重复的导入路径非常麻烦。除非将所有内容都导入到'__init __。py'文件中,否则这些导入文件会导致很多额外的导入操作,从而导致难以维护。也就是说,你可以自由地构建你的项目,但是你愿意。我只是提供许多人遵循的会议。 – dirn