什么是插件?

  插件只是辅助,是开发过程中的一个阶段。一般项目一期会用各种插件,迅速将功能、界面搭出来,二期时就改成自己的代码了。大点的公司都有自己的js库,自己开发类似jquery的库。

  那接下来就写一下关于前端表头的插件

urls.py
from django.contrib import admin
from django.urls import path
from app01 import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
path('admin/', admin.site.urls),
#以前用FBV写,现在用CBV写
path('server.html', views.ServerView.as_view()),
path('server-json.html', views.ServerJsonView.as_view()),
]
urlpatterns += staticfiles_urlpatterns()
models.py
from django.db import models class UserInfo(models.Model):
name=models.CharField(max_length=64)
age=models.IntegerField() class BusinessUnit(models.Model):
name=models.CharField(max_length=64) class Server(models.Model):
server_type_choices=(
(1,'Web'),
(2,'存储'),
(3,'缓存')
)
server_type=models.IntegerField(choices=server_type_choices)
hostname=models.CharField(max_length=64)
port=models.IntegerField()
business_unit=models.ForeignKey(to="BusinessUnit",to_field="id",on_delete=models.CASCADE)
user=models.ForeignKey(to='UserInfo',to_field="id",on_delete=models.CASCADE)
views.py
from django.shortcuts import render,HttpResponse
from django.views import View
import json class BaseResponse(object): # 封装数据 def __init__(self):
self.status=True
self.data= None
self.message=None class ServerView(View): # 这个插件的增删改查全部是利用Ajax去做的 def get(self,request,*args,**kwargs): return render(request,'server.html') class ServerJsonView(View): # 前端利用Ajax把前端的数据发送到这里进行处理和发送 def get(self,request,*args,**kwargs):
response=BaseResponse()
try:
# 获取现实的列
# 获取数据
table_config=[
{
'title':'主机名',
'display':1,
},
{
'title':'端口',
'display':1,
},
]
response.data={ # 配置文件
'table_config':table_config, # 那么这个列表就传输到前端页面了
}
except Exception as e:
response.status=False # 如果出错
response.message=str(e)
return HttpResponse(json.dumps(response.__dict__)) #把数据发送到前端的用户
server.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="/static/js/jquery-1.12.4.js"></script>
</head>
<body>
<table border="">
<thead id="thead"></thead>
<tbody id="tbody"></tbody>
</table> <script>
$(function () {
init();
}); function init() {
//获取现实的列
//获取数据
$.ajax({
url:'server-json.html',
type:'GET',
dataType:'JSON',
success:function (arg) {
if(arg.status){
//创建表格标题
createTablehead(arg.data.table_config); // 后台的response.data里的table_config
}else{
alert(arg.message)
} }
})
} var tr=document.createElement('tr'); // 创建个tr标签
function createTablehead(config) { //config=response.data.table_config
$.each(config,function (k,v) { // $.each 为循环 对config循环 v代指字典
if(v.display){ // 若v.display == True 那么创建一个th
var th=document.createElement('th'); // 创建th标签
th.innerHTML=v.title; // 把后台的table_config里的title放入到th标签内
$(tr).append(th); // 把th标签添加到tr标签里
}
}) $('#thead').append(tr); // 把tr标签添加到thead标签里
} </script>
</body>
</html>

那么,现在看一下前端界面的显示结果吧!

那么,关于前端插件定制之表头就已经完成了!

最新文章

  1. Android驱动开发前的准备(一)
  2. hibernate配置 sqlserver 数据库自动增长
  3. css3 media媒体查询器用法总结
  4. 遍历JObject
  5. C# 6.0的新变化
  6. [转] boost::any的用法、优点和缺点以及源代码分析
  7. javascript每日一练(十四)——弹性运动
  8. JavaScript作用域问题
  9. 支持多用户web终端实现及安全保障(nodejs)
  10. Python学习--课本程序练习(周更)
  11. .NETCore+EF+MySql+Autofac简单三层架构
  12. ElasticSearch(十)Elasticsearch检索出的数据列表按字段匹配的优先顺序及搜索单词拼音一部分搜不到数据
  13. python datetime 字符串 时间戳
  14. Database Administration Statements
  15. mybatis中动态SQL之trim详解
  16. bootstrap 文本对齐风格
  17. 【Mysql】事务日志-Write Ahead logging vs command-logging(转)
  18. android编译环境安装
  19. 建造者模式及C++实现
  20. VS2008里的代码如何格式化

热门文章

  1. [计算机网络-数据链路层] CSMA、CSMA/CA、CSMA/CD详解
  2. java 调用 keytool 生成keystore 和 cer 证书
  3. 【MVVM Dev】ComboBox嵌入CheckBox的显示问题
  4. 【BZOJ4912】天才黑客(最短路,虚树)
  5. 信息收集利器——Nmap
  6. 序列计数(count)
  7. dTree 动态生成树
  8. jq从数组中删除指定元素(根据自定义条件) 超好用的 $.grep() 方法
  9. SpringMVC 重定向
  10. [ldap]slapcat/ldapsearch与ldap备份