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