我很想知道在Django 2中,最有效的方法是将大对象放到视图中
在
views.py
json
文件。腌制的版本在
95%
的大小
版本。
module
级别变量,我的一个视图
需要
修改
模块
级别变量(此处命名为
persistent
),我们看到顺序调用使用更新的变量——正如预期的那样:
视图.py
...
persistent = {'val': 0} # loaded from pickled / json file
def test(request, val):
old = persistent['val'] # required information from unmodified object
persistent['val'] = val # some computation which is required to modify the object
return JsonResponse({'old': old, 'new': val})
...
...
urlpatterns = [
...,
path('test/<val>/', views.test, name='test')
,...
]
api调用
localhost:8000/test/10 ---> {'old': 0, 'new': 10}
localhost:8000/test/100 ---> {'old': '10', 'new': 100}
这当然是意料之中的。然而,对于
用例,我需要每个调用访问原始的
持久的
未修改的变量。
-
调用视图时读入对象
-
调用视图时复制持久对象
也许还有更好的方法来处理这个问题。
我的问题是,一般来说,对于大的,可能是复杂的物体,什么更有效
copy.deepcopy
或者读取pickle文件?