2024-06-02 08:19:38 发布
网友
我知道可以使用session_transaction()方法创建会话对象。但是,有没有一种方法可以访问当前会话对象,该对象是在命中“/”路由时创建的?我做了from flask import session来访问会话,但它是空的。如果可能的话告诉我。谢谢。在
from flask import session
This就是你要找的。但是,正如它所说,您必须使用您在with语句中创建的实例化。在
with
with app.test_client() as c: with c.session_transaction() as sess: sess['a_key'] = 'a value' # once this is reached the session was stored
请注意,如果您在with c.session_transaction() as sess语句的范围内运行测试,则这将不起作用,它需要在该块之后运行。在
with c.session_transaction() as sess
如果要从测试中读取写入视图中的会话数据,一种方法是将会话视图模拟为dict,并在测试中验证会话。下面是一个使用Python's unittest.mock的示例:
应用程序副本
from flask import Flask, session, request app = Flask(__name__) app.config["SECRET_KEY"] = "my secret key" @app.route("/", methods=["POST"]) def index(): session["username"] = request.form["username"] return "Username saved in session"
测试_索引.py
当然,您可以使用任何您喜欢的模拟解决方案。在
This就是你要找的。但是,正如它所说,您必须使用您在
with
语句中创建的实例化。在请注意,如果您在
with c.session_transaction() as sess
语句的范围内运行测试,则这将不起作用,它需要在该块之后运行。在如果要从测试中读取写入视图中的会话数据,一种方法是将会话视图模拟为dict,并在测试中验证会话。下面是一个使用Python's unittest.mock的示例:
应用程序副本
测试_索引.py
^{pr2}$当然,您可以使用任何您喜欢的模拟解决方案。在
相关问题 更多 >
编程相关推荐