一、目录结构

二、获取数据,模板语言渲染

web\views.py

import json
from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
from repository import models def server(request):
return render(request,'server.html') def server_json(request): server_list = models.Server.objects.values('hostname','sn','os_platform')
response = {
'status':True,
'data_list': list(server_list),
} return JsonResponse(response)

server.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css" />
</head>
<body>
<h1>服务器列表</h1> <script src="/static/js/jquery-3.2.1.js"></script>
<script>
$(function () {
init();
}); /*
像后台获取数据
*/
function init() {
$.ajax({
url:'/server_json.html',
type: 'GET',
data: {},
dataType: 'JSON',
success:function (response) {
console.log(response.data);
}
}) } </script> </body>
</html>

三、js获取数据,js动态创建table标签

订制表头:table_config

解决了什么问题?

  1. 以前我们都是写死的多少行多少咧
  2. 我这个表有几列?就写三列,这三列叫什么就得订好了
  3. 如果是这样,前端也要按照这种方式去写,
  4. 用户管理的页面的时候,又得把这个写一遍
  5. 前端以后我不写了,到底显示几列?我也不知道,到底多少列,根据我后台的配置文件决定

具体代码如下:

import json
from django.shortcuts import render,HttpResponse
from django.http import JsonResponse
from repository import models def server(request):
return render(request,'server.html') def server_json(request):
table_config = [
{
'q': 'hostname',
'title': '主机名',
},
{
'q': 'sn',
'title': '序列号',
},
{
'q': 'os_platform',
'title': '系统',
},
] values = []
for item in table_config:
values.append(item['q'])
server_list = models.Server.objects.values(*values)
response = {
'data_list': list(server_list),
'table_config': table_config
} return JsonResponse(response)

订制显示内容: table_config,data_list

解决了什么问题?

1、前后端分离

  1. 我在页面生成一个表格 ,在表格里面全都列出来你说行不
  2. 以后我通过配置文件控制多少列,分别是什么

2、data里面再写个列表,

  1. 我可以把所有的数据放到我的页面上
  2. 内容是去数据库里拿
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css" />
</head>
<body>
<div class="container">
<h1>服务器列表</h1>
<table class="table table-bordered">
<thead id="tHead">
<tr> </tr>
</thead>
<tbody id="tBody"> </tbody>
</table> </div> <script src="/static/js/jquery-3.2.1.js"></script>
<script>
$(function () {
init();
}); /*
像后台获取数据
*/
function init() {
$.ajax({
url:'/server_json.html',
type: 'GET',
data: {},
dataType: 'JSON',
success:function (response) {
/* 处理表头 */
initTableHead(response.table_config);
console.log(response.table_config);
console.log(response.data_list);
}
}) } function initTableHead(table_config) {
/*
table_config = [
{
'q': 'hostname',
'title': '主机名',
},
{
'q': 'sn',
'title': '序列号',
},
{
'q': 'os_platform',
'title': '系统',
},
]
*/
$('#tHead tr').empty();
$.each(table_config,function (k,conf) { var th = document.createElement('th');
th.innerHTML = conf.title;
$('#tHead tr').append(th); });
}
</script> </body>
</html>

四、运行截图

五、在工作中如何开发一个你没有学过的项目

学习流程:

  1. - 搜现成模块
  2. - 基本使用,找文档
  3. - 看源码
  4. - stackoverflow

整体和单独那个先行

先整体后单独

CMDB服务器管理系统【s5day92】:定制表头的更多相关文章

  1. CMDB服务器管理系统【s5day87】:需求讨论-设计思路

    自动化运维平台愿景和服务器管理系统背景 服务器管理系统 管理后台示例 需求和设计 为什么开发服务器管理系统? 背景: 原来是用Excel维护服务器资产,samb服务[多个运维人员手动维护] 搭建运维自 ...

  2. CMDB服务器管理系统【s5day92】:服务器管理回顾

    一.服务器管理回顾 1.requests 发送: requests.post(url='',data=,json=) requests.get() Django接受: request.POST, co ...

  3. CMDB服务器管理系统【s5day88】:采集资产之Agent、SSH和Salt模式讲解

    在对获取资产信息时,简述有四种方案. 1.Agent  (基于shell命令实现) 原理图 Agent方式,可以将服务器上面的Agent程序作定时任务,定时将资产信息提交到指定API录入数据库 优点: ...

  4. CMDB服务器管理系统【s5day88】:采集资产-文件配置(一)

    django中间件工作原理 整体流程: 在接受一个Http请求之前的准备 启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器. ...

  5. CMDB服务器管理系统【s5day89】:部分数据表结构-资产入库思路

    1.用django的app作为统一调用库的好处 1.创建repository app截图如下: 2.好处如下: 1.app的本质就是一个文件夹 2.以后所有的app调用数据就只去repository调 ...

  6. CMDB服务器管理系统【s5day90】:API验证

    1.认证思路刨析过程 1.请求头去哪里拿? 1.服务器端代码: def test(request): print(request) return HttpResponse('你得到我了') 2.客户端 ...

  7. CMDB服务器管理系统【s5day90】:API构造可插拔式插件逻辑

    1.服务器端目录结构: 1.__init__.py from django.conf import settings from repository import models import impo ...

  8. CMDB服务器管理系统【s5day90】:获取今日未采集主机列表

    1.目录结构 1.服务器端 2.客户端 2.具体代码如下 1.数据库增加两个字段 class Server(models.Model): """ 服务器信息 " ...

  9. CMDB服务器管理系统【s5day90】:创建资产更新服务器硬盘信息

    1.创建硬件资产信息 import json from django.shortcuts import render,HttpResponse from django.views.decorators ...

随机推荐

  1. AngularJS学习之旅—AngularJS 过滤器(七)

    1.AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式. filter ...

  2. 基本数据对象(int,float,str)

    一.整型(int) # int对象初始化 x = 2 y = int(3) n = int("A3",12) # 运算符(+.-.*././/.%.**) ''' 相关的函数 '' ...

  3. HBase Rowkey 设计指南

    为什么Rowkey这么重要 RowKey 到底是什么 我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好.可见 RowKey 在 HBase 中的地位.那么 RowKey ...

  4. Vue-Router模式、钩子

    转:https://www.cnblogs.com/heioray/p/7193841.html 模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const ro ...

  5. laravel学习笔记一

    指定端口 数据迁移 php artisan migrate:install 任何路由 match get,post只选择其一 没有表名对应默认的posts表,如果表为post就不行 时区不对时 分页 ...

  6. luogu P4842 城市旅行

    嘟嘟嘟 好题,好题 刚开始突发奇想写了一个\(O(n ^ 2)\)暴力,结果竟然过了?!后来才知道是上传题的人把单个数据点开成了10s-- 不过不得不说我这暴力写的挺好看的.删边模仿链表删边,加边的时 ...

  7. [LeetCode] 16. 最接近的三数之和

    题目链接:https://leetcode-cn.com/problems/3sum-closest/ 题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 num ...

  8. 27 python 初学(信号量、条件变量、同步条件、队列)

    参考博客: www.cnblogs.com/yuanchenqi/articles/5733873.html  semaphore 信号量: condition 条件变量: event 同步条件:条件 ...

  9. python3 pickle模块

    import pickle '''将对象转化为硬盘能识别的bytes的过程被称为序列号将bytes转化为对象的过程被称为反序列化'''lst = ["苹果", "橘子&q ...

  10. 静态代理与JDK动态代理

    demo地址: https://github.com/ZbLeaning/leaning 代理: 为其他对象提供一种代理以控制对这个对象的访问.分为静态代理和动态代理.代理模式的目的就是为真实业务对象 ...