代码之家  ›  专栏  ›  技术社区  ›  SumNeuron

Python 3和Django 2加载或复制视图对象的速度更快?

  •  0
  • SumNeuron  · 技术社区  · 7 年前

    我很想知道在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}
    

    这当然是意料之中的。然而,对于 用例,我需要每个调用访问原始的 持久的 未修改的变量。

    1. 调用视图时读入对象
    2. 调用视图时复制持久对象

    也许还有更好的方法来处理这个问题。

    我的问题是,一般来说,对于大的,可能是复杂的物体,什么更有效 copy.deepcopy 或者读取pickle文件?

    0 回复  |  直到 7 年前