python - 在 Python Django 中的后续请求之间保留变量的值

标签 python django

我有一个 Django 应用程序来记录来自自动完成界面的字符序列。每次调用服务器时,参数都会添加到列表中,并且当用户提交查询时,该列表会写入文件中。

由于我不确定如何在后续调用之间保留列表,因此我依赖于一个全局变量,例如 query_logger。现在我可以通过以下方式保留列表:

def log_query(query, completions, submitted=False):
    global query_logger
    if query_logger is None:
        query_logger = list()

    query_logger.append(query, completions, submitted)

    if submitted: 
        query_logger = None

虽然此技巧适用于发送请求的单个客户端,但当请求来自多个客户端时,我认为这不是一个稳定的解决方案。我的问题有两个:

  1. 请求的执行顺序是什么:它们是否遵循先到先服务(特别是当请求是异步的时)?
  2. 执行此操作的更好方法是什么?

最佳答案

您不得为此使用全局变量。

正确的答案是使用 session - 这正是它的用途。

关于python - 在 Python Django 中的后续请求之间保留变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810023/

相关文章:

python - 使用 pep8 验证 python 语法时出现错误输出

python - 使用 Python 的 datetime 模块,我可以获得 UTC-11 当前所在的年份吗?

Django-加载多对多关系管理页面太慢

python - 在 Pydev/Eclipse 的 python 程序中使用外部 C 库

python - 包含字典列表的字典

python - python 诅咒中的进度条

python - 在哪里可以获得 apache2/module 的 mod_wsgi.so 文件?

python - 匹配文本中存储的关键字/短语

django - 如何记住 QuerySet.update() 之后要处理的对象

python - 使用 BeautifulSoup 从维基百科获取特定图像