Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么';t flask会话对象是否需要实例化?_Python_Python 3.x_Flask_Web Frameworks - Fatal编程技术网

Python 为什么';t flask会话对象是否需要实例化?

Python 为什么';t flask会话对象是否需要实例化?,python,python-3.x,flask,web-frameworks,Python,Python 3.x,Flask,Web Frameworks,阅读文档后,我了解到flask定义了一个类flask.session 让我困惑的是,当人们使用它时,他们不会实例化session类的对象,而是直接使用session,如下代码所示: from flask import Flask, session app = Flask(__name__) @app.route('/') def index(): session['key'] = 'value' 我不明白为什么代码不应该看起来像这样: from flask import Flask

阅读文档后,我了解到flask定义了一个类flask.session

让我困惑的是,当人们使用它时,他们不会实例化session类的对象,而是直接使用session,如下代码所示:

from flask import Flask, session

app = Flask(__name__)

@app.route('/')
def index():
    session['key'] = 'value'
我不明白为什么代码不应该看起来像这样:

from flask import Flask, session

app = Flask(__name__)
s = session() # so s is an instance of the flask.session class

@app.route('/')
def index():
    s['key'] = 'value'
我还想知道这是否与会话作为代理有关,正如文档中所说的那样。我读了《代理说明》,但不太懂。

这个问题太棒了

它在烧瓶中初始化
globals.py

因此,当您从flask导入时,您将从其包
\uuu init\uuuuuuuuuuuupy
导入,该包从
globals.py
提取会话并对其进行初始化。当您直接导入它时,可以获取对它的引用


我应该澄清,课程本身不是一门课。它是LocalProxy类的一个实例,是请求上下文的代理。

谢谢!对于会话是类还是实例,我仍然有点困惑。如果我执行
键入(会话)
,我可以验证您所说的LocalProxy实例。但是在文档()中,flask.session被定义为一个类,但在下面的注释中,它被称为一个对象……是的,这不是误导。隐马尔可夫模型。
session = LocalProxy(partial(_lookup_req_object, 'session'))