天天看点

Python开发框架Flask1. Flask介绍2. Flask安装3. Flask入门4. 总结

Python开发框架Flask1. Flask介绍2. Flask安装3. Flask入门4. 总结

关于flask值得知道的一些事:

flask由armin ronacher于2010年创建。

flask的灵感来自sinatra。(sinatra是一个极力避免小题大作的创建web应用的ruby框架。)

flask遵循“约定优于配置”以及合理的默认值原则。

默认情况下,flask 不包含数据库抽象层、表单验证或是任何其它现有库可以胜任的东西。作为替代的是,flask 支持扩展来给应用添加这些功能,如同是在 flask 自身中实现。众多的扩展提供了数据库集成、表单验证、上传处理、多种开放认证技术等功能。

flask 数目众多的配置选项在初始状况下都有一个明智的默认值,并遵循一些惯例。 例如,按照惯例,模板和静态文件存储在应用的 python 源代码树下的子目录中,名称分别为 templates 和 static 。虽然可以更改这个配置,但你通常不必这么做, 尤其是在刚接触 flask 的时候。

你首先需要 python 2.6 或更高的版本,所以请确认有一个最新的 python 2.x 安装。

virtualenv 允许多个版本的 python 同时存在,对应不同的项目。 它实际上并没有安装独立的 python 副本,但是它确实提供了一种巧妙的方式来让各项目环境保持独立。

如果你在 mac os x 或 linux下,下面两条命令可能会适用:

或更好的:

上述的命令会在你的系统中安装 virtualenv。它甚至可能会存在于包管理器中,如果你使用 ubuntu ,可以尝试:

现在你只需要键入以下的命令来激活 virtualenv 中的 flask:

这样也是可以的,只需要以 root 权限运行 pip:

一个最小的 flask 应用看起来是这样:

把它保存为 hello.py(或是类似的),然后用 python 解释器来运行。

现在访问<code>http://127.0.0.1:5000/</code>

我们来解释一下上面的代码吧:

第一行导入了flask类,以便创建一个flask应用的实例。

接下来一行我们创建了一个flask类的实例。这是一个wsgi应用实例。wsgi是”web服务器网关接口”web service gateway interface)的缩写,同时也是架设web项目的python标准。这一行要告诉flask到哪里去找应用所需的静态资源和模板。在我们的例子中,我们传递了name,让flask在当前模块内定位资源。

接着我们定义了一些关于<code>/</code>的路由。第一个路由是为根路径<code>/</code>准备的,第二个则对应于类似<code>/shekhar</code>、<code>/abc</code>之类的路径。对于<code>/</code>路由,我们将初始的name设定为guest。如果用户访问 <code>http://localhost:5000/</code> ,那么他会看到<code>hello guest</code>。如果用户访问 <code>http://localhost:5000/shekhar</code> ,那么他会看到 <code>hello shekhar</code>。

最后我们用 run() 函数来让应用运行在本地服务器上。 其中 <code>if __name__ == '__main__'</code>: 确保服务器只会在该脚本被 python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

如果你禁用了 debug 或信任你所在网络的用户,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:

这会让操作系统监听所有公开的ip。

有两种途径来启用调试模式。一种是在应用对象上设置:

另一种是作为 run 方法的一个参数传入: