Flask教程:给经验丰富的程序员的前言

Flask 中的本地线程¶

Flask 其中的一条设计原则就是简单的任务保持简单;任务的实现不需要花费太多的代码也不会限制到你。
因此,Flask 的一些设计决定可能会让一些人感到很惊讶或者非正统。例如,Flask 内部使用了本地线程对象,这样在一个请求中不必在函数之间传递对象以保证线程安全。
这种方式是十分方便,但是为依赖注入或者尝试重用与请求挂钩的值的代码,需要一个有效的请求上下文。
Flask 项目对本地线程很公开的,并不会去隐藏它们,在使用到它们的代码和文档里面都会指出。

小心翼翼地进行 Web 开发¶

在构建 Web 应用程序时,始终考虑到安全性。

如果你编写了一个 Web 应用,你很可能允许用户在你的服务器上注册并留下数据。即使这是唯一的用户,也可能会在应用中留下数据。用户们把数据托付给你,你当然更希望这些数据被安全地保存。

不幸的是,有很多方法可以使得一个 Web 应用程序的安全性受到损害。
Flask 能够让你免受现代 Web 应用常见的一个安全问题的困扰:跨站脚本攻击(XSS)。
如果你不是刻意地把不安全的 HTML 标记成安全的,Flask 以及底层的 Jinja2 模版引擎会守护着你。
但目前还存在着更多的方法来引起安全问题。

本文档会在 web 开发中那些需要注意安全的方面提醒你。这些安全考虑中的某些远比人们想象的复杂,我们有时候低估漏洞被利用的可能性——直到一个聪明的攻击者找出利用应用的方法。并且,不要想着你的应用没有重要到可以吸引攻击者。取决于攻击的类 型,有时候是自动化的僵尸机器搜寻在你数据库中填充垃圾、恶意程序链接等的方法。

开发者必须在为需求编写代码时留心安全隐患,在这点上,Flask 与其它框架没有区别。

Python 3 的状况¶

目前 Python 社区正处于改善库以对 Python 编程语言中迭代支持的进程中。尽管情况大大改善,
但还存在一些问题,因此使我们现在很难切换到 Python 3 上。
导致这些问题的一部分原因是语言中的变更长时间没有复查,
一部分也是因为我们没有找出低层 API 应该如何做出修改来适应 Python 3 中 Unicode 的差异。

一旦应对变更的解决方案出现,Werkzeug 和 Flask 就会立刻迁移到 Python 3,并且我们会提供升级现有应用到 Python 3 的提示。在那之前,我们强烈建议在开发时候使用 Python 2.6 和 2.7,并打开 Python 3 警告。
如果你计划在近期升级到 Python 3 ,我们强烈推荐你阅读 How to write forwards compatible
Python code
.

请继续阅读 安装 或者 快速入门