【发布时间】:2019-02-17 00:41:59
【问题描述】:
我设置了一个简单的 Flask 端点,如下所示:
from flask import Flask
app = Flask(__name__)
languages = ['Python', 'Java', 'C++', 'Ruby', 'C']
@app.route('/')
def index():
lang = languages.pop(0)
return 'Language = {}'.format(lang)
当我在浏览器中查看该端点时,它会在第一次请求时显示“语言 = Python”(预期)。如果我重新加载页面,它会显示“Language = Java”(意外)。如果我再次重新加载,它会显示“Language = C++”。
按照我对 HTTP 的理解,每个请求都是对服务器的全新请求,所以我希望每次重新加载页面时浏览器都会显示“Language = Python”。
这里发生了什么?
为什么 Flask 端点似乎能记住上一个请求中“语言”列表的状态?
我宁愿它没有那样做!谢谢。
【问题讨论】:
-
将
languages移动到index()内。 -
以上只是我的代码的精简版本来说明问题。我需要访问其他功能中的“语言”列表。如果我将它移动到索引中,我将无法做到这一点,对吗?
-
您可以创建一个类来保存
languages并将相关函数分组到该类中。然后在index()中创建该类的对象并使用它。