给有经验的程序员的前言 — Flask 文档
来自菜鸟教程
Flask/docs/1.1.x/advanced foreword
给有经验的程序员的前言
Flask 中的线程局部变量
Flask 的设计决策之一是简单的任务应该简单; 它们不应占用大量代码,但不应限制您。 正因为如此,Flask 有一些设计选择,有些人可能会觉得奇怪或非正统。 例如,Flask 在内部使用线程本地对象,因此您不必在请求中从一个函数到另一个函数传递对象以保持线程安全。 这种方法很方便,但需要一个有效的请求上下文来进行依赖注入,或者在尝试重用使用与请求挂钩的值的代码时。 Flask 项目对线程局部变量很诚实,没有隐藏它们,并在代码和文档中标明使用它们的地方。
谨慎地为 Web 开发
在构建 Web 应用程序时始终牢记安全性。
如果您编写 Web 应用程序,您可能会允许用户注册并将他们的数据留在您的服务器上。 用户将数据委托给您。 即使您是唯一可能在您的应用程序中留下数据的用户,您仍然希望安全地存储该数据。
不幸的是,Web 应用程序的安全性可能会受到多种影响。 Flask 保护您免受现代 Web 应用程序最常见的安全问题之一:跨站点脚本 (XSS)。 除非你故意将不安全的 HTML 标记为安全,否则 Flask 和底层的 Jinja2 模板引擎已经涵盖了你。 但是还有更多的方法会导致安全问题。
该文档将警告您需要注意安全的 Web 开发方面。 其中一些安全问题比人们想象的要复杂得多,而且我们有时都低估了漏洞被利用的可能性——直到聪明的攻击者找到了一种利用我们应用程序的方法。 并且不要认为您的应用程序的重要性不足以吸引攻击者。 根据攻击类型的不同,自动化机器人很可能正在探索用垃圾邮件、恶意软件链接等填充数据库的方法。
Flask 与任何其他框架没有什么不同,因为开发人员必须谨慎构建,在根据您的要求构建时注意漏洞利用。