我有一个巨大的列表,它将在django视图中从csv文件动态生成,但我需要在下一个视图中使用该列表,所以我想试试django sessions
< / p>
def import_products(request):
if request.method == 'POST':
if request.FILES:
csv_file_data = ...........
total_records = [row for row in csv_file_data]
request.session['list_data'] = total_records
# total_records is `list of lists` of length more than 150
# do some processing with the list and render the page
return render_to_response('product/import_products.html')
def do_something_with_csv_data_from_above_view(request):
data = request.session['list_data']
# do some operations with list and render the page
return render_to_response('website/product/success.html',
如上所述,我需要使用total_records
视图中的do_something_with_csv_data_from_above_view
巨大列表,并通过将其存储在另一个变量中来删除会话
所以实际上如何实现/使用会话概念(我已经阅读了django文档但无法获得确切的概念)
就我而言,
我错过了什么,有人可以为我上面的场景实现确切的代码吗?
答案 0 :(得分:1)
您有两种选择:
客户端RESTful - 这是一个RESTful解决方案,但可能需要更多工作。您可以在第一次请求中检索客户端的数据,选择后可以将选定的行发送回服务器进行处理,CSV等。
缓存:在第一个请求中,您可以使用django文件系统或memcached在服务器上缓存数据。在第二个请求中,使用缓存密钥(可以是用户会话密钥+某个时间戳+其他任何内容)来获取数据并存储在数据库中。
如果有很多数据选项2可能会更好。