【发布时间】:2019-05-28 14:58:18
【问题描述】:
我正在尝试在 Django 中实现以下示例并在表中列出所有进程,但我很难在模板中显示信息。 我在 python 文件中运行此代码,它输出多个列表(每个进程一个),如下所示
import psutil
for p in psutil.process_iter(attrs=['pid', 'username', 'status', 'cpu_percent', 'memory_percent', 'memory_info', 'name']):
process_info = [p.pid, p.info['username'], p.info['status'], p.info['memory_info'].rss, p.info['cpu_percent'], p.info['memory_percent'], p.info['name']]
print(process_info)
[1, 'root', 'sleeping', 9142272, 0.0, 0.009034306321108227, 'systemd']
[2, 'root', 'sleeping', 0, 0.0, 0.0, 'kthreadd']
[3, 'root', 'idle', 0, 0.0, 0.0, 'rcu_gp']
[4, 'root', 'idle', 0, 0.0, 0.0, 'rcu_par_gp']
[5, 'root', 'idle', 0, 0.0, 0.0, 'kworker/0:0-events']
[6, 'root', 'idle', 0, 0.0, 0.0, 'kworker/0:0H-kblockd']
[8, 'root', 'idle', 0, 0.0, 0.0, 'mm_percpu_wq']
如何处理所有这些单独的列表并将它们显示为表格行?
更新:这是我在views.py中的请求
def processes(request):
for p in psutil.process_iter(attrs=['pid', 'username', 'status', 'cpu_percent', 'memory_percent', 'memory_info', 'name']):
process_info = [p.pid, p.info['username'], p.info['status'], p.info['memory_info'].rss, p.info['cpu_percent'], p.info['memory_percent'], p.info['name']]
context_processes = {'process_info': process_info }
return render(request, 'lwp_admin/processes.html', context_processes )
以下是用于输出的模板中的 Django 代码:
<table class="table table-bordered table-responsive table-striped table-condensed">
<thead class="bg-green-gradient">
<tr>
<th scope="col" class="col-xs-1 text-center">PID</th>
<th scope="col" class="col-xs-1 text-center">Owner</th>
<th scope="col" class="col-xs-1 text-center">Status</th>
<th scope="col" class="col-xs-1 text-center">RSS</th>
<th scope="col" class="col-xs-1 text-center">CPU usage (%)</th>
<th scope="col" class="col-xs-1 text-center">MEM usage (%)</th>
<th scope="col" class="col-xs-3 text-center">Command</th>
</tr>
</thead>
<tbody>
{% for proc in context_processes.process_info %}
<tr>
<td>{{ proc }}</td>
</tr>
{% endfor %}
</tbody>
</table>
【问题讨论】:
-
请将您的代码添加到您尝试在模板中添加的位置。