如何在 Flask 中安装请求 class?

How do I install the request class in Flask?

如果重要的话,我会使用 PyCharm。每当我使用:

from flask import request

有效,没有错误。

但是每当我尝试使用 class 之类的东西时,

request.data
request.args

我明白了

    raise RuntimeError('working outside of request context')
RuntimeError: working outside of request context

从 PyCharm 之外的命令行我得到,

>>> import flask.request
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named request
>>>

我看过这个和很多其他的,

How to get data received in Flask request

http://flask.pocoo.org/docs/0.10/api/#flask.request

None 的方法或属性在我尝试导入时存在。

我在 Windows 7 上使用虚拟环境。Flask 中的其他一切都运行良好。

Flask 为请求使用 代理对象。 import from flask import request 是正确的,但它本身并不代表请求。 flask.request 不是模块。

flask.request 的任何访问都会 为您查找 当前请求;这使得处理请求更简单,但这也意味着如果目前没有实际的 Web 请求正在进行,您不能只使用它。

您要么不得在实际为传入请求调用的视图之外使用它,要么需要显式创建 请求上下文。您可以使用 Flask.test_request_context() method:

from flask import Flask, request

app = Flask(__name__)

with app.test_request_context('/foo/bar'):
    print request.path  # prints '/foo/bar'

所有这些都详尽地记录在 Flask Quickstart and in the Request Context 文档中。

没有理解这一切。当您实际需要担心请求数据时,它会起作用,例如当浏览器连接到您的 Flask 应用程序并调用视图函数来呈现结果时,request 将正常工作。