首页 > 解决方案 > 旧会话 ID 不可用

问题描述

app.py具有烧瓶应用程序的文件。test_app.py具有代码相关请求模块的文件以调用具有 id 值的烧瓶应用程序 url。

app.py我和test_app.py我都在两个不同的命令提示符下。

id="10122"当请求从test_app.py旧会话第二次发送时id为无。为什么会这样None?我的第一个请求已经id在会话中设置了,第二次我正在访问旧的(第一个)请求id

对于我的第二个使用旧会话 id 的请求id = "10122"应该是10121.

      1.current output: 
         Old session id: None 
         New session id: 10121

      2.Expected Output:
          Old session id: 10121
          New session id: 10122

(base) H:\Python\DevPractice\day4>python app.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
********started********
Old session id: None
New session id: 10121
************end**********
127.0.0.1 - - [21/Sep/2019 14:28:27] "POST / HTTP/1.1" 200 -
********started********
Old session id: None
New session id: 10122
************end**********
127.0.0.1 - - [21/Sep/2019 14:28:27] "POST / HTTP/1.1" 200 -

从 test_app.py 调用

(base) H:\Python\DevPractice\day4>python test_app.py
results
results
  1. 应用程序.py 文件
    from flask import Flask, make_response, redirect, session, url_for,    request

    SECRET_KEY = 'develop'

    app = Flask(__name__)
    app.config.from_object(__name__)

    @app.route('/', methods=['POST'])
    def index():
        print("********started********")

        old_id = session.get('id', None)
        print("Old session id:", old_id )
        if request.method == 'POST':
            session['id'] = request.form['id']
        #session['hello'] = 'world!'
        new_id = session.get('id', None)
        print("New session id:", new_id )
        print("************end**********")
        return "results"

    if __name__ == '__main__':
        app.run()
  1. test_app.py 文件
    import requests
    list_id = ["10121", "10122"]
    for i in list_id:
        payload = {'id': i}
        r = requests.post("http://127.0.0.1:5000/", data=payload)
        print(r.text)

标签: python-3.xsessionflask

解决方案


推荐阅读