gpt4 book ai didi

python - flask 服务器 : Using a data in the same session

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:07 24 4
gpt4 key购买 nike

我有一个使用 Flask 框架的 python 服务器。

我的应用程序是一个聊天机器人,它与用户对话并在用户提供的数据集中执行一些计算。

我已经能够将此数据上传到服务器,但是当我尝试使用该数据时,它不再加载。因此,我需要使用这些数据,直到用户与我的服务器断开连接。

阅读 Flask 文档,我发现了一些可以引导我找到我需要的信息。 The Application Context

我的方向正确吗?

这就是我在服务器中上传文件的方式:

@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# check if the post request has the file part
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
# if user does not select file, browser also
# submit a empty part without filename
if file.filename == '':
flash('No selected file')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
stream = io.StringIO(file.stream.read().decode("UTF8"), newline=None)
csv_input = pd.read_csv(stream,sep=None,engine='python')
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
session['receive_count'] = session.get('receive_count', 0) + 1
return render_template('index.html', async_mode=socketio.async_mode)

return render_template('index.html', async_mode=socketio.async_mode)

最佳答案

您的问题有多种解决方案。

首先,这里的 file 变量是 index() 函数的本地变量。如果您想使用在函数外部定义的变量(并且它不像 requestsession 那样导入),您需要使用 global 行启动该函数文件

我会将文件名存储在session中,然后在需要数据时再次读取该文件。这样,它将位于用户本地,并且您不会在内存中存储大量数据。另外,如果您使用 session.permanent = True,无论服务器和浏览器是否重新启动,它都会为该“用户”存储一个月。

编辑:这个答案最初指出你可以使用 Flask g-object 来存储全局。但是,g 对象对于请求来说是本地的,即使它存在于应用程序上下文中。 (即存储在 g 对象上的数据无法跨请求访问,只能在同一请求内访问)

关于python - flask 服务器 : Using a data in the same session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47693197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com