关于 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框架进行分析和对比,如:

 

  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 运行这条命令 。)

posted @ 2018-10-08 19:56  蛇夫座  阅读(113)  评论(0)    收藏  举报