王小波说翻译最见一个人的文学功底,现在相信了。
如果完全按照自己的话组织,总是能适应自己的习惯,相对来说写起来可能更为流畅。
但是翻译,即便清楚的理解了作者的意思,往往还要同时考虑原文的结构,反倒表达不清楚。
对于能力欠佳的我,暂时先翻译这么多吧

推荐大家直接看原文
原文链接 Explore Flask

What is a Blueprint?


Blueprint是定义了一系列供Web应用使用的视图、模版、静态文件以及其他的一些对象的集合。

比如我们已经有了一个使用Blueprint开发的用户管理界面。这个Blueprint可以定义视图,这些视图对应于路径,比如/admin/login 和/admin/dashboard.同时可以包括模版和静态文件。

我们可以将上述的\”用户管理\”添加到现有的应用中,它可能是一个宇航员的社交网络或者供火箭销售员使用的CRM系统。

Why would you use Blueprint?


Blueprint杀手级的使用场景是将应用程序拆分成不同的组件。
以Twitter为例
我们会在诸如e.g index.html and about.html的页面使用Blueprint.
另一个Blueprint应用于用户登录成功后用于显示最新邮件
可能还有一个Blueprint用于系统管理
通过这种方式,每一个不同的模块都同样可以被独立出来
我们的程序由这些独立的模块所组成。

Where do you put them?


就像Flask的灵活性一样。通过Blueprint,我们有很多方法来组织我们的程序结构。
这里我们讨论两种选择: 功能 VS 业务区分

Functional structure

  • 按照各个模块所实现的功能进行区分。模版、视图和静态文件分别放在不同的目录下

    yourapp/
        __init__.py
        static/
        templates/
            home/
            control_panel/
            admin/
        views/
            __init__.py
            home.py
            control_panel.py
            admin.py
        models.py

Divisional structure

  • 按照当前网站的相关业务进行区分。所有与管理相关的模版、视图和静态文件放到一个目录所有与用户相关的模版、视图和静态文件放到另一目录

    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