2015-10-13 113 views
3
run.py 
static/ 
templates/ 
tests/ 
config.py 
models.py 

我在run.py中创建了一个Flask类的实例,并定义了视图。我计划移动视图,以便它们与run.py文件分开,并且只需要run.py文件实例化Flask类。但是,我也有很多非视图函数被每个视图函数调用并实现应用程序逻辑。构建大型Flask应用程序?

什么是重新组织这些视图和逻辑函数以创建一个好的应用程序结构的方法?我是否应该为每个视图有一个包含与每个视图函数对应的逻辑函数的视图/文件夹?我应该将逻辑功能组合在另一个单独的文件夹中吗?

+0

[Flask应用程序中的公用文件夹/文件结构]可能的重复(http://stackoverflow.com/questions/14415500/common-folder-file-structure-in-flask-app) – dirn

回答

2

文档中有一些不错的guidance。 Flask并没有强加大量的强制结构,而是在正确的轨道上养成为了自己的理智而构建项目的习惯。这可能完全留给你,你想如何做到这一点。可能有很多意见在那里

我倾向于做的是创建一个典型的大多数python项目的结构。您可能想要使用应用程序工厂模式和蓝图。

myapp 
/myapp 
    /home 
     views.py 
    /templates 
    /static 
    factory.py 
    core.py 
    models.py 
runserver.py 
config.py 

Mattupstate对这个问题的好blog article。还有Fbone。米格尔格林伯格在他的Flask书中也有一章。

+0

我正要写出来一个基于米格尔格林伯格的书的答案,所以我只想+1这个建议。在使用Flask之前,我来自没有Web开发经验的背景。我认为这是一本很好的书,有一章专门讨论这个“大型应用程序结构”。事实上,如果你下载https://github.com/miguelgrinberg/flasky和'git checkout 7a',你会看到一个大型应用程序结构的例子。 – wgwz

+0

是的,这本书很棒。我用他的书来学习烧瓶。我写了一些应用程序来完成工作中的一些项目。两年后,我找到了一份工作,维护一个非常大的应用程序,这个应用程序的组织方式与其他迁移和部署策略不同。这本书虽然是一个很好的起点。 – m1yag1