Flask 和 WerkZeug 中的 Application Context 和 Request Context 是什么?

use*_*034 6 python web-services werkzeug

我正在使用flask、Werkzeug 和jinja2 开发一个Web 应用程序。我对这些术语非常困惑,想知道这些术语的含义以及它们与 CGI 环境变量的相互关系。什么是全局变量 g 以及它与应用程序上下文和请求上下文的关系。

此外,由于我对开发 Web 应用程序没有太多了解(我是第一次这样做)任何其他语言,因此如果有人可以提供参考或让我了解如何处理请求,还有另一个请求,我的意思是当请求到达 Web 应用程序时会发生什么。

此外,如果我没有使用任何 openID 提供程序来让用户登录我的网站,我该如何确保密码安全。我应该为此使用任何框架吗?

tbi*_*icr 2

对于请求上下文,更好地查看下一个问题:Flask 上下文堆栈的目的是什么?。最好花一点时间来理解它,因为它是基本框架原理。

许多用户数据存储方法都是安全的,最简单的方法是在数据库中存储用户和密码,并modern_crypto_hash(password + salt)限制接受短密码,并使用某种方式登录为Flask-LoginFlask-Principal。为了避免 SQL 注入,您可以使用任何 ORM,例如SqlAlchemy. 为了避免 XSS 通过 POST 发送更改的数据并添加csrf令牌,WTForms这很好。为了避免 html 标签注入,默认情况下已经使用内置模板系统,并且不要不安全地将用户内容插入到页面中。也能有用https