Flask1.0.2系列(一) 前言

英文原文地址:http://flask.pocoo.org/docs/1.0/foreword/

若有翻译错误或者不尽人意之处,请指出,谢谢~        


        此章节主要是一些问题的回答,如在项目中使用Flask的目标,以及在什么情况下可以使用Flask,而在什么情况下不建议使用Flask。


1. 何谓“微型”的定义?

        这里所说的微型并不是指你的整个Web程序在一个Python文件就可以实现完成(尽管这个是可能的),也不是说Flask在功能上有很大的缺陷甚至是没有实现。这里的微型全称是微型框架(microframework),它表示Flask的目的是保持精简的核心功能,且是可扩展的。Flask在某些方面并没有规定你必须这么做,比如Flask并没有限制你必须使用何种数据库。Flask只是规定了一些你能够轻易改变的决定,比如说使用什么模板引擎(templating engine)。在Flask的世界中,所有的决定都在于你(使用者),因此Flask可以成为你需要的样子,抛弃掉你所不需要的东西。
默认情况下,Flask不包含数据抽象层、表单验证或者其他任何可以处理某一个问题的库。相反,Flask支持将这些额外的功能添加到你的应用程序中,且这些功能就像是Flask自身实现了一样。这些额外的功能(称之为扩展)提供了像是数据库继承、表单验证、上传处理、以及各种开放认证技术等等。Flask在某种意义上来说确实是微型的,但它对于实现我们的各种需求做好了准备。

2. 配置和约定

        Flask有很多拥有合理预设值的配置项,以及启动时需要的一些约定项。对于约定项,模板文件和静态文件必须存储在应用程序的Python源文件树的子目录中,名字分别为templates(存储模板文件)和static(存储静态文件)。虽然这种约定是可以改变的,但通常情况下我们是不会去更改这些约定的。

3. 与Flask一起成长

        当你需要建立Flask的应用程序时,你可以在社区找到各种你需要的且可使用的扩展,以便你将这些功能集成到你的程序中。Flask的核心团队会长期审查扩展并且确保批准发布的扩展的版本会一直更新。
随着你的代码库不断地增长,你可以根据你的项目做出适当的设计决策。Flask会一直提供一个非常简单的粘合层作用,以达到Python提供的最佳效果。你可以在SQLAlchemy或者其他数据库工具中使用高级模式,也可以在合适的时机引进非关系型数据库进行持久化存储,甚至看可以使用一些不知名的框架来实现WSGI,也就是Python的Web接口。
Flask包含很多钩子来自定义它的行为。如果你想要更多的自定义行为,那么可以为Flask类建立子类来实现。如果你对这个感兴趣,请阅读 Becoming Big(因为我不感兴趣,所以自己去官网看吧)。如果你对Flask的设计原则充满好奇,请阅读 Design Decisions in Flask(我没有好奇心。。。先学会应用,以后好奇了我再决定看不看)。

猜你喜欢

转载自blog.csdn.net/regandu/article/details/80019457
今日推荐