[英]Django: Correct way of passing data object from view to template to view?
從模板用戶可以上傳一個 csv 文件,該文件被解析
def parseCSV(request):
magic happens here (conforming date formats and all such fun things)
return column names to template
此視圖返回一個列列表,並要求用戶選擇 x 列進行保存。 用戶選擇發布到
def saveCSV(request):
logic for saving
現在我的問題是,如何最正確地處理視圖 1 和 2 之間的 csv 數據對象? 我是將它保存為臨時文件還是將它作為數據對象來回發送 view1->template->view2? 或者也許是第三種?
我想在前端解析 CSV 文件,並為用戶提供選擇列的選項。 選擇列后,我會將這些帶有值的列發送到后端。
沒有“正確”的方法,因為這完全取決於具體情況。 在這種情況下,這取決於 CSV 文件中數據的大小。 鑒於數據比較大,最好的辦法是將解析后的數據存儲在服務器上,然后在接下來的請求中只發送用戶選擇的完整數據集。
我建議您解析數據並將其作為 JSON blob 存儲在數據庫中,以便您可以輕松地為下一個請求檢索它。 通過這種方式,您可以發送用戶對行和列(或“坐標”)的選擇,然后將其保存為真實數據。 立即存儲它的好處是用戶即使在離開流程后也可以返回到流程。 但是,缺點是您保存了未使用的數據,如果用戶從未完成該過程,並且您可能需要稍后清除它。 如果將其存儲在僅包含臨時數據的表中,則應該可以簡化清理過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.