如何声明和处理服务器端会话变量?

时间:2019-07-24 13:26:21

标签: python pandas flask

我是python和flask的新手。我正在尝试开发没有任何登录凭据(使用python和flask)的小型应用程序。

我的要求是

每当用户打开应用程序时,系统都必须从数据库中读取数据并存储在熊猫数据框中。在该用户可以导航到任何页面之后,该时间系统仅需要评估熊猫数据框,并且不应该读取数据库。

我尝试过以下方式

  1. 创建名为prd.py的模型
    • 声明变量prod = [],df =无
    • 创建函数a()
    • 全局df
    • 在此函数中,调用另一个名为get_product_list()的函数以及db中的产品列表。
    • 迭代列表并调用另一个函数get_product()以获取与产品相关的数据(在此处使用线程) get_product()函数中的**从数据库中获取数据并加载到产品列表中
    • 基于产品列表创建熊猫数据框并分配给变量df

在app.py

将prd导入为p
@ app.route('/')
def index(): p.a()#至初始负载
retVal = p.x()#此函数将从df中读取并获取所需的数据
返回render_template('index.html',rs = retVal)

@ app.page('/ p')#ajax调用
def getPage(): retVal = p.y()#此函数将从df中读取并获取所需的数据
返回jsonify(retVal)

在并发会话中,由于该产品列表,我得到了重复数据

我们对会话数没有任何限制,但始终应获取正确的数据(无重复)

注意: Other Question link与我的要求不同,因为我的应用程序不需要任何登录凭据,而且我的数据对于所有连接的会话都不会是静态的。例如。我已经在上午10点连接了该数据库中的10个产品,我只能访问该10个产品,另一个用户在上午10.02点连接了该数据库中的12个产品,该用户应该获得那12个产品

Other Question link我无法在此处创建另一个数据源,即使我无法存储在文件中也无法访问该数据源。因此,我不能使用memcached,redis等。我想在启动会话时应该在数据库中找到应该在会话结束时访问的内容(但只有一次读取源数据库)

我已经看到了那些链接。

据我所知,我们无法将其存储在flask会话变量中,因为数据大小至少为200kb

0 个答案:

没有答案