我在这里尝试过很多东西,但有点卡住了。
我有两个python文件。
----------------------------------
# file_one.py
from file_two import add_value
# Generate some value and pass it over to file_two by calling the function add_value
print add_value("somevalue")
----------------------------------
#file_two.py
myDictionary = {}
def add_value(payload):
global myDictionary
# Insert payload with a timestamp in to myDictionary
myDictionary[payload] = '{:%Y-%m-%d %H:%M:%S}'.format(datetime.now())
return myDictionary
def some_other_function():
print myDictionary
当我使用另一个函数在file_two.py中打印Dictionary时,我只得到{}。我已经尝试了各种不同的方法来设置字典而不使用全局等但我无法在file_two中获取任何信息。
file_one工作正常并使用正确的值打印myDictionary。
所以我想我的问题是两部分。如何在file_two中访问Dictionary,如果不在file_two中,那么存储的数据在哪里!
由于
编辑1
一些背景知识。 file_two是一个Django view.py所以some_other_function是一个浏览器请求。我的想法是将信息从字典传递到浏览器以与数据库信息一起显示。
这可能是问题吗?与Django包有关吗?
我实际上并没有打印任何东西。主要是logger.info ......
编辑2
我通过在/ dev / shm文件夹中使用SQLite数据库来解决这个问题。这是一个RAM文件夹,并且不会超出重启,这是我正在寻找的。实际的SQLite数据库很容易从多个不同的python脚本中准备好。
答案 0 :(得分:0)
你是如何部署Django的?如果您有多个工作人员,则可能无法共享myDictionary
等全局变量。最好将其存储在数据库或缓存中。