在 GUI 上显示一个巨大的文件
Display a huge file on GUI
我对编程世界还很陌生。我开始学习了Python。我正在尝试开发一个程序来获取用户输入,在后台运行一些命令,然后在 Web 界面上显示输出。虽然它有点复杂,但为了简单起见,您可以将其视为:
- 用户输入文件名
- python 代码运行 "cat filename"
- 输出显示在屏幕上。
我有 Python + Django + Apache 安装程序。我正在使用 HTML 来显示输出。只要返回的输出相当小,它就可以正常工作。但有时我有巨大的输出(~700 MB),显然我很难在网络界面上显示它。
Code Snippet:
op = subprocess.check_output(cmd,universal_newlines=True)
return render (request, 'display.html', {'op': op})
在网络上显示如此大的内容的最佳方法是什么?我想在 table:
上提出一些要点
- 将输出存储在文件中而不是字符串中。在chunks.In这种情况下读取文件,我可以让我的代码写入文件并同时读取文件显示吗?我不认为这是个好主意,但想检查一下。
- 是否有任何 python 软件包旨在解决此类问题?任何 django 功能?
- 当我有大量的输出时,程序需要一段时间才能得到输出,然后需要一段时间才能显示在屏幕上。
您不能在任何常规屏幕上一次显示 700 MB 的字母数字数据,即使可以,用户也会淹没其中。所以你应该显示部分并启用滚动或 selection。正如您所指出的,加载所有这些数据需要花费一些时间。但是,由于您不会将其整块查看,因此您也不必整块加载它。与其刷新整个页面,不如使用 Ajax(例如在 jQuery 中实现)让浏览器将数据加载到适当的 HTML/DOM 元素中,如用户所指示的那样。移动滚动条。鉴于即使在这种情况下 700 MB 也太多了,更好的方法是 select 使用某种类型的分层(树)控件或其他非顺序 selection 机制显示数据.在这种情况下,Django 的唯一任务,除了为页面本身提供服务之外,就是为请求的数据部分提供服务,例如作为 JSON 数据。如前所述,包含显示数据部分和 selection 控件的页面仅提供一次。
查看一些 jQuery 无限滚动选项 here。
我对编程世界还很陌生。我开始学习了Python。我正在尝试开发一个程序来获取用户输入,在后台运行一些命令,然后在 Web 界面上显示输出。虽然它有点复杂,但为了简单起见,您可以将其视为:
- 用户输入文件名
- python 代码运行 "cat filename"
- 输出显示在屏幕上。
我有 Python + Django + Apache 安装程序。我正在使用 HTML 来显示输出。只要返回的输出相当小,它就可以正常工作。但有时我有巨大的输出(~700 MB),显然我很难在网络界面上显示它。
Code Snippet:
op = subprocess.check_output(cmd,universal_newlines=True)
return render (request, 'display.html', {'op': op})
在网络上显示如此大的内容的最佳方法是什么?我想在 table:
上提出一些要点- 将输出存储在文件中而不是字符串中。在chunks.In这种情况下读取文件,我可以让我的代码写入文件并同时读取文件显示吗?我不认为这是个好主意,但想检查一下。
- 是否有任何 python 软件包旨在解决此类问题?任何 django 功能?
- 当我有大量的输出时,程序需要一段时间才能得到输出,然后需要一段时间才能显示在屏幕上。
您不能在任何常规屏幕上一次显示 700 MB 的字母数字数据,即使可以,用户也会淹没其中。所以你应该显示部分并启用滚动或 selection。正如您所指出的,加载所有这些数据需要花费一些时间。但是,由于您不会将其整块查看,因此您也不必整块加载它。与其刷新整个页面,不如使用 Ajax(例如在 jQuery 中实现)让浏览器将数据加载到适当的 HTML/DOM 元素中,如用户所指示的那样。移动滚动条。鉴于即使在这种情况下 700 MB 也太多了,更好的方法是 select 使用某种类型的分层(树)控件或其他非顺序 selection 机制显示数据.在这种情况下,Django 的唯一任务,除了为页面本身提供服务之外,就是为请求的数据部分提供服务,例如作为 JSON 数据。如前所述,包含显示数据部分和 selection 控件的页面仅提供一次。
查看一些 jQuery 无限滚动选项 here。