### 导航
- [索引](# "总目录")
- [下一页](# "安装") |
- [上一页](# "前言") |
- [Flask 0.10.1 文档](#) »
# 给有经验程序员的前言
本章节是给有其它框架工作经验的程序员,以及有具体或深刻涉及那些的典型用户,
### 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 ,我们强烈推荐你阅读[如何编写向后兼容的 Python 代码](http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/) [http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/] 。
继续阅读 [*安装*](#) 或 [*快速入门*](#) 。
© 版权所有 2013, Armin Ronacher.
- 欢迎使用 Flask
- 前言
- 给有经验程序员的前言
- 安装
- 快速入门
- 教程
- 介绍 Flaskr
- 步骤 0: 创建文件夹
- 步骤 1: 数据库模式
- 步骤 2: 应用设置代码
- 步骤 3: 创建数据库
- 步骤 4: 请求数据库连接
- 步骤 5: 视图函数
- 步骤 6: 模板
- 步骤 7: 添加样式
- 福利: 应用测试
- 模板
- 测试 Flask 应用
- 记录应用错误
- 配置处理
- 信号
- 即插视图
- 应用上下文
- 请求上下文
- 用蓝图实现模块化的应用
- Flask 扩展
- 与 Shell 共舞
- Flask 代码模式
- 大型应用
- 应用程序的工厂函数
- 应用调度
- 使用 URL 处理器
- 部署和分发
- 使用 Fabric 部署
- 在 Flask 中使用 SQLite 3
- 在 Flask 中使用 SQLAlchemy
- 上传文件
- 缓存
- 视图装饰器
- 使用 WTForms 进行表单验证
- 模板继承
- 消息闪现
- 用 jQuery 实现 Ajax
- 自定义错误页面
- 延迟加载视图
- 在 Flask 中使用 MongoKit
- 添加 Favicon
- 数据流
- 延迟请求回调
- 添加 HTTP Method Overrides
- 请求内容校验码
- 基于 Celery 的后台任务
- 部署选择
- mod_wsgi (Apache)
- 独立 WSGI 容器
- uWSGI
- FastCGI
- CGI
- 聚沙成塔
- API
- JSON 支持
- Flask 中的设计决策
- HTML/XHTML 常见问题
- 安全注意事项
- Flask 中的 Unicode
- Flask 扩展开发
- Pocoo 风格指引
- Python 3 支持
- 升级到最新版本
- Flask Changelog
- 许可证
- 术语表