关于 Flask

初识Flask
Flask 是一个 Python 实现的 Web 开发微框架。
Flask 基于两个外部库: Jinja 2模板引擎和Werkzeug WSGI 工具集。
要细读它们的文档,请点击下面的链接:
前言
“微” 是什么意思?
“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。
默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。
配置与惯例
Flask 繁多的配置选项在初始状况下都有一个明智的默认值,并会遵循一些惯例。 例如,按照惯例,模板和静态文件分别存储在应用 Python 源代码树下的子目录 templates和 static 里。虽然这个配置可以修改,但你通常不必这么做, 尤其是在刚开始的时候。
与 Flask 共成长
当你配置好并运行 Flask,你会发现社区中有许多可以集成到生产环境项目的扩展。Flask 核心团队会审阅这些扩展,确保经过检验的扩展在未来版本中仍能适用。
随着你的代码库逐渐壮大,你仍可自由把握项目的设计决策。Flask 会继续尽可能提供的一个非常简单的胶水层,这也是 Python 应该提供的东西。你可以在 SQLAlchemy 或其它数据库工具中实现更高级的模式,酌情引入非关系型数据持久化, 也可以从框架无关的 WSGI——Python 的 Web 接口——工具中获益。
Flask VS Django
网上也有很多文章对这两个web框架进行分析和对比,如:
- Quora:Should I learn Flask or Django?
- Django vs Flask vs Pyramid: Choosing a Python Web Framework
- “海盗”用Flask,“海军”用Django
Flask
- Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
- Flask主要特点是 小而轻,原生组件几乎为0, 属于短小精悍的框架。
- 组件大部分来源于三方,flask-admin,flask-session
- flask大版本更新快,组件更新速度慢
Django
- 特点是大而全,集成组件多,如:admin,models,Form,中间件,session
- 一个框架解决所有问题
- 一旦启动,所有资源全部加载,用不到的,浪费了
- 太大了,结构复杂
- 所有的组件,全部由Django自身控制
安装
virtualenv
你很可能想在开发中用上 virtualenv,如果你有生产环境的 shell 权限,你同样会乐于在生产环境中使用它。
virtualenv 解决了什么问题?如果你像我一样喜欢 Python,不仅会在采用 Flask 的Web 应用中用上 virtualenv,在别的项目中你也会想用上它。你拥有的项目越多,同时使用不同版本的 Python 工作的可能性也就越大,或者起码需要不同版本的 Python 库。悲惨现实是:常常会有库破坏向后兼容性,然而正经应用不采用外部库的可能微乎其微。当在你的项目中,出现两个或更多依赖性冲突时,你会怎么做?
virtualenv 拯救世界!virtualenv 为每个不同项目提供一份 Python 安装。它并没有真正安装多个 Python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立。让我们来看看 virtualenv 是怎么工作的。
Flask 依赖两个外部库: Werkzeug 和 Jinja 2 。 Werkzeug 是一个 WSGI(在 Web 应用和多种服务器之间的标准 Python 接口) 工具集。Jinja2 负责渲染模板。
如果你在 Mac OS X 或 Linux 下,下面两条命令可能会适用:
$ sudo easy_install virtualenv
或:
$ sudo pip install virtualenv
上述的命令会在你的系统中安装 virtualenv。它甚至可能会存在于包管理器中, 如果你用的是 Ubuntu,可以尝试:
$ sudo apt-get install python-virtualenv
如果你用的是 Windows ,而且没有 easy_install 命令,那么你必须先安装这个命令。查阅 Windows 下的 pip 和 distribute 章节了解如何安装。之后,运行上述的命令,但是要去掉 sudo 前缀。
virtualenv 安装完毕后,你可以立即打开 shell 然后创建你自己的环境。我通常创建一个项目文件夹,并在其下创建一个 venv 文件夹
$ mkdir myproject $ cd myproject $ virtualenv venv New python executable in venv/bin/python Installing distribute............done.
现在,无论何时你想在某个项目上工作,只需要激活相应的环境。在 OS X 和 Linux 上,执行如下操作:
$ . venv/bin/activate
下面的操作适用 Windows:
$ venv\scripts\activate
无论通过哪种方式,你现在应该已经激活了 virtualenv(注意你的 shell 提示符显示的是当前活动的环境)。
现在你只需要键入以下的命令来激活 virtualenv 中的 Flask:
$ pip install Flask
几秒钟后,一切都搞定了。
全局安装
这样也是可以的,虽然我不推荐。只需要以 root 权限运行 pip:
$ sudo pip install Flask
(在 Windows 上,在管理员权限的命令提示符中去掉 sudo 运行这条命令 。)

浙公网安备 33010602011771号