Get machine name from IP

本文提供了一段Java代码示例,演示了如何通过给定的IP地址来获取其对应的主机名称。此功能对于网络管理和故障排查非常有用。
public static void main(String[] args) throws Exception {
String addr = getMachineNameFromIP("192.168.1.159");
System.out.println(addr);
}

static String getMachineNameFromIP(String ipAddr) {
try {
InetAddress i = InetAddress.getByName(ipAddr);
return i.getHostName();
} catch (UnknownHostException e) {
e.printStackTrace();
return "NULL";
}
}
需求,增加一个在机器码管理页面增加一个激活时间,激活时间这个字段在机器码数据库表kn_machine中authorized_time字段,激活时间指激活机器码的时间,点击激活时,将这个激活时间保存在数据库kn_machine中authorized_time字段,并在机器码管理界面显示出激活时间,提供machine.html的代码<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>机器码管理</title> <link rel="stylesheet" href="/static/css/main.css" type="text/css"> <link rel="stylesheet" href="/static/css/machine.css" type="text/css"> <script src="/static/js/jquery-1.11.3.js"></script> <script src="/static/js/tools.js?v={% now 'U' %}"></script> <script src="/static/js/machine.js?v={% now 'U' %}"></script> </head> <body style="width: 990px"> <div id="container"> {% include 'top.html' %} {% include 'left.html' %} <div id="right"> <div id="top_func"> <form action="/machine_search/" method="get" style="display: inline-block"> <input type="text" name="input_search" placeholder="角色/机器码" id="input_search"> <input type="submit" value="搜索" class="btn" id="btn_search"> </form> </div> <div class="div_table"> <table id="item_table"> <tr id="table_th"> <td class="col0">序号</td> <td class="col1">申请单位</td> <td class="col3">机器码</td> <td class="col4">授权时间</td> <td class="col11">操作</td> </tr> <!-- 数据由 JS 动态插入 --> </table> </div> <div id="paging"> 共有 <span id="total_num">0</span> 条记录, 当前第 <span id="local_page">1</span>/ <span id="total_page">1</span> 页 <div> <input type="button" value="首页" class="btn" id="btn_firstpage"> <input type="button" value="上一页" class="btn" id="btn_lastpage"> <input type="button" value="下一页" class="btn" id="btn_nextpage"> <input type="button" value="尾页" class="btn" id="btn_endpage">   转到第  <input type="text" id="targetpage">  页   <input type="button" value="跳转" class="btn" id="btn_targetpage"> </div> </div> </div> </div> <script> $(function () { get_page(1); // 页面加载时自动请求第一页 }); </script> </body> </html> 和models.py的代码from django.db import models from django.utils import timezone class Groups(models.Model): group_name = models.CharField(verbose_name='角色', max_length=10) group_level = models.IntegerField(verbose_name='级别') def __str__(self): return self.group_name class Meta: db_table = "KN_Groups" verbose_name = "职位" verbose_name_plural = verbose_name class Users(models.Model): group = models.ForeignKey(Groups, on_delete=models.CASCADE, verbose_name='角色') user_account = models.CharField(verbose_name='用户名', max_length=20) user_password = models.CharField(verbose_name='密码', max_length=100) user_name = models.CharField(verbose_name='姓名', max_length=10, default='') user_age = models.IntegerField(verbose_name='年龄', default=20) register_date = models.DateTimeField(verbose_name='注册时间', auto_now_add=True) # 固定写法 last_login_date = models.DateTimeField(verbose_name='最后登录', null=True, blank=True) is_active = models.BooleanField(verbose_name='激活状态', default=True) def __str__(self): return self.user_name class Meta: db_table = "KN_Users" verbose_name = "用户" verbose_name_plural = verbose_name class UsersMac(models.Model): user = models.ForeignKey(Users, on_delete=models.CASCADE, verbose_name='用户') mac = models.CharField(verbose_name='mac地址', max_length=40) def __str__(self): return self.user.user_name # 修正为 user.user_name class Meta: db_table = "KN_UsersMac" verbose_name = "用户Mac" verbose_name_plural = verbose_name # 新增 Machine 模型(原缺失) class Machine(models.Model): group = models.ForeignKey(Groups, on_delete=models.CASCADE, verbose_name='申请单位') mac = models.CharField(verbose_name='机器码', max_length=40, unique=True) is_active = models.BooleanField(verbose_name='激活状态', default=False) authorized_time = models.DateTimeField(verbose_name='授权时间', null=True, blank=True) def __str__(self): return f"{self.mac} ({'已激活' if self.is_active else '未激活'})" class Meta: db_table = "kn_machine" verbose_name = "机器码" verbose_name_plural = verbose_name ordering = ['-authorized_time'] def activate(self): self.is_active = True self.authorized_time = timezone.now() self.save() 和views.py关于机器码的代码from django.shortcuts import render, redirect from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.http import HttpResponse, JsonResponse from django.views.decorators.csrf import csrf_exempt from django.db.models import Q, DurationField, ExpressionWrapper, F, Max import os.path from datetime import datetime from .models import * from log.views import opelog_add from log.views import visitlog_add from door.models import Company from door.models import CompanyEmployee from door.models import Department from door.models import DepartmentEmployee from door.models import DepartmentManager from door.models import Machine from django.utils import timezone from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.http import JsonResponse from .models import Machine def login(request): if request.method == 'GET': request.session.flush() return render(request, 'login.html') else: # 接收uphone 和 upwd 并验证 errMsg = "" user_account = request.POST['user_account'] if not user_account: errAccMsg = "账号或密码错误" return render(request, 'login.html', locals()) user_password = request.POST['user_password'] if not user_password: errPwdMsg = "账号或密码错误" return render(request, 'login.html', locals()) # print(user_account, user_password) # users = Users.objects.filter(Q(user_account=user_account) & Q(is_delete=False)).first() user = Users.objects.filter(user_account=user_account).first() if user: # return HttpResponse("欢迎:" + users[0].user_name) if user.is_active == 0: errAccMsg = "账号或密码错误" return render(request, 'login.html', locals()) if user_password == user.user_password: reset_user_session(request) request.session['user_account'] = user_account request.session['user_level'] = user.group.group_level request.session['user_group_name'] = user.group.group_name _company_employee = CompanyEmployee.objects.filter(employee__id=user.id).first() if not _company_employee: errAccMsg = "账号或密码错误" return render(request, 'login.html', locals()) request.session['company_id'] = _company_employee.company.id user.last_login_date = datetime.now() user.save() _ip = request.META.get("REMOTE_ADDR") visitlog_add(user_account, 'Web网页', _ip) return render(request, 'user.html', get_user_response(request)) else: errPwdMsg = "账号或密码错误" return render(request, 'login.html', locals()) else: errAccMsg = "账号或密码错误" return render(request, 'login.html', locals()) # 表格字段顺序,便于维护 def reset_user_session(request): request.session['input_search'] = None request.session['users_fieldorder'] = '00000' request.session['users_fieldordernum'] = '0' def login_out(request): request.session.flush() # 清空session # login_status = 0 # return render(request, 'backend/index.html', {'login_status': login_status, }) return redirect('../login/') def get_full_uers(_users): _list_user = [] for _user in _users: user = {} user['id'] = _user.id user['user_account'] = _user.user_account user['user_name'] = _user.user_name _model_com_emp = CompanyEmployee.objects.filter(employee__id=_user.id).first() if _model_com_emp: user['company'] = _model_com_emp.company.name else: user['company'] = '' _model_dep_emp = DepartmentEmployee.objects.filter(employee__id=_user.id).first() if _model_dep_emp: user['department'] = _model_dep_emp.department.name else: _model_dep_man = DepartmentManager.objects.filter(manager__id=_user.id).first() if _model_dep_man: user['department'] = _model_dep_man.department.name else: user['department'] = '' user['group_name'] = _user.group.group_name user['is_active'] = _user.is_active _list_user.append(user) return _list_user def get_filter_uers(request, _users): # _company_employee = CompanyEmployee.objects.filter(employee__id=_user.id).first() _level = request.session.get('user_level') if _level <= 4: _filter_ce = CompanyEmployee.objects.filter(company__id=request.session.get('company_id')) _list_filter_ids = [] for _model in _filter_ce: _list_filter_ids.append(_model.employee.id) user_list = _users.filter(Q(group__group_level__gt=_level) & Q(id__in=_list_filter_ids)).order_by( "-id") else: # _department_manager = DepartmentManager.objects.filter( # department__company__id=request.session.get('company_id')).first() _account = request.session.get('user_account') _model_dm = DepartmentManager.objects.filter(manager__user_account=_account).first() if _model_dm: _filter_users = DepartmentEmployee.objects.filter(department=_model_dm.department) _list_filter_ids = [] for _model in _filter_users: _list_filter_ids.append(_model.employee.id) user_list = _users.filter(Q(group__group_level__gt=_level) & Q(id__in=_list_filter_ids)).order_by( "-id") else: user_list = _users.filter(id=-1) return user_list def get_user_response(request): # _page = request.POST['req_page'] _level = request.session.get('user_level') # group_list = Groups.objects.all().order_by("id") if _level == 1 or _level == 2: group_list = Groups.objects.filter(group_level__gt=_level).exclude(id__in=[3, 4]).order_by("id") else: group_list = Groups.objects.filter(group_level__gt=_level).order_by("id") # _user_account = request.session.get('user_account') # _user = Users.objects.filter(user_account=_user_account).first() _users = Users.objects.all() user_list = get_filter_uers(request, _users) paginator = Paginator(user_list, 15) response = {} response['groups'] = group_list response['total_num'] = user_list.count() response['total_page'] = paginator.num_pages _users = paginator.page(1) response['users'] = get_full_uers(_users) companys = Company.objects.filter(is_delete=False) response['companys'] = companys response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = _level response['user_account'] = request.session.get('user_account') return response # 用户管理页面 def user(request): request.session['input_search'] = "" _account = request.session.get('user_account') if not _account: return HttpResponse("请登录") reset_user_session(request) return render(request, 'user.html', get_user_response(request)) def user_query_pwd(request): _id = request.GET['id'] response = {} _user = Users.objects.filter(id=_id).first() if _user: response['pwd'] = _user.user_password response['result'] = 0 return JsonResponse(response) def user_query_acount(request): _user_acount = request.GET['user_acount'] response = {} _user = Users.objects.filter(user_account=_user_acount).first() if _user: response['user_password'] = _user.user_password response['result'] = 0 return JsonResponse(response) # 用户列表分页 def users_page(request): input_search = request.session.get('input_search') _level = request.session.get('user_level') if input_search: user_list = Users.objects.filter(user_account__icontains=input_search) else: user_list = Users.objects.all() user_list = get_filter_uers(request, user_list) req_page = request.GET['req_page'] return JsonResponse(res_users_page(user_list, req_page)) def res_users_page(user_list, req_page): paginator = Paginator(user_list, 15) response = {} response['total_num'] = user_list.count() response['total_page'] = paginator.num_pages response['local_page'] = req_page try: _users = paginator.page(req_page) except PageNotAnInteger: _users = paginator.page(1) except EmptyPage: _users = paginator.page(paginator.num_pages) response['local_page'] = paginator.num_pages response['users'] = get_full_uers(_users) response['from_num'] = (int(response['local_page']) - 1) * 15 # response['users'] = json.loads(serializers.serialize("json", users)) # print(locals()) return response # 添加用户 @csrf_exempt def user_add(request): request.session['input_search'] = "" response = {} _account = request.POST['account'] _user = Users.objects.filter(user_account=_account).first() if _user: response['result'] = 1 return JsonResponse(response) _level = request.session.get('user_level') if _level == 5: _my_account = request.session.get('user_account') _model_dm = DepartmentManager.objects.filter(manager__user_account=_my_account).first() if not _model_dm: response['result'] = 2 return JsonResponse(response) user = Users() user.user_account = request.POST['account'] user.user_name = request.POST['name'] user.user_password = request.POST['pwd'] group_id = request.POST['group'] group = Groups.objects.filter(id=group_id)[0] # group = Groups.objects.get(id=group_id) user.group = group user.save() _ce = CompanyEmployee() # _company_id = request.POST['company'] _company_id = request.session.get('company_id') _company = Company.objects.filter(id=_company_id)[0] _ce.company = _company _ce.employee = user _ce.save() if _level == 5: _model_de = DepartmentEmployee() _model_de.department = _model_dm.department _model_de.employee = user _model_de.save() response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '添加账号_' + user.user_account) return JsonResponse(response) # 修改用户 @csrf_exempt def user_update(request): response = {} # user = Users() original_account = request.POST['original_account'] user_id = request.POST['id'] _user1 = Users.objects.filter(id=user_id).first() if not _user1: response['result'] = 2 return JsonResponse(response) _account = request.POST['account'] _user2 = Users.objects.filter(user_account=_account) if original_account != _account and _user2: response['result'] = 1 return JsonResponse(response) _user1.user_account = request.POST['account'] _user1.user_password = request.POST['pwd'] _user1.user_name = request.POST['name'] group_id = request.POST['group'] group = Groups.objects.filter(id=group_id)[0] _user1.group = group _user1.save() # _ce = CompanyEmployee() # _company_id = request.session.get('company_id') # _company = Company.objects.filter(id=_company_id)[0] # _ce.company = _company # _ce.save() response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '修改账号_' + _user1.user_account) return JsonResponse(response) # 修改自身用户 @csrf_exempt def user_updatepwd(request): response = {} # user = Users() user_acount = request.POST['user_acount'] _user1 = Users.objects.filter(user_account=user_acount).first() if not _user1: response['result'] = 2 return JsonResponse(response) _user1.user_password = request.POST['user_pwd'] _user1.save() # _ce = CompanyEmployee() # _company_id = request.session.get('company_id') # _company = Company.objects.filter(id=_company_id)[0] # _ce.company = _company # _ce.save() response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '修改账号密码') return JsonResponse(response) # 模糊查询 def user_search(request): user_acc_name = request.GET['input_search'] print(user_acc_name) # print(type(user_acc_name)) # _str = urllib(user_acc_name) # print(_str) if not user_acc_name: reset_user_session(request) return render(request, 'user.html', get_user_response(request)) else: request.session['input_search'] = user_acc_name _level = request.session.get('user_level') user_list = Users.objects.filter(user_account__icontains=user_acc_name) user_list = get_filter_uers(request, user_list) if _level == 1 or _level == 2: group_list = Groups.objects.filter(group_level__gt=_level).exclude(id__in=[3, 4]).order_by("id") else: group_list = Groups.objects.filter(group_level__gt=_level).order_by("id") # user_list = Users.objects.all().order_by("id") paginator = Paginator(user_list, 15) response = {} response['groups'] = group_list response['total_num'] = user_list.count() response['total_page'] = paginator.num_pages users = paginator.page(1) response['users'] = users response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = _level response['user_account'] = request.session.get('user_account') # print(locals()) return render(request, 'user.html', response) def user_active(request): _id = request.GET['id'] response = {} # print(del_id) if not _id: response['result'] = 1 return JsonResponse(response) else: _user = Users.objects.filter(id=_id).first() if _user: _user.is_active = 1 - _user.is_active if _user.is_active: _acitve_str = '启用账号' response['result'] = 1 else: _acitve_str = '禁用账号' response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), _acitve_str + '_' + _user.user_account) _user.save() else: response['result'] = 1 return JsonResponse(response) return JsonResponse(response) def user_delete(request): del_id = request.GET['del_id'] response = {} # print(del_id) if not del_id: response['result'] = 1 return JsonResponse(response) else: _model = Users.objects.filter(id=del_id) if _model: _delete_model = _model.first() _delete_account = _delete_model.user_account _model.delete() opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), ' 删除账号' + '_' + _delete_account) else: response['result'] = 1 return JsonResponse(response) response['result'] = 0 return JsonResponse(response) def user_mac(request): _account = request.session.get('user_account') if not _account: return HttpResponse("请登录") user_mac_id = request.GET.get('mac_account_id') _model_user = Users.objects.filter(id=user_mac_id).first() request.session['mac_account'] = _model_user.user_account return render(request, 'user_mac.html', get_user_mac_response(request)) def get_user_mac_response(request): _mac_account = request.session.get('mac_account') _data = UsersMac.objects.filter(user__user_account=_mac_account).order_by("-id") paginator = Paginator(_data, 15) response = {} # response['doors'] = _doors response['total_num'] = _data.count() response['total_page'] = paginator.num_pages _data = paginator.page(1) response['models'] = _data response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = request.session.get('user_level') response['user_account'] = request.session.get('user_account') response['mac_account'] = request.session.get('mac_account') return response @csrf_exempt def user_mac_add(request): response = {} _mac_account = request.session.get('mac_account') _mac = request.POST['mac'] _model_users_mac = UsersMac() _model_user = Users.objects.filter(user_account=_mac_account).first() _model_users_mac.user = _model_user _model_users_mac.mac = _mac _model_users_mac.save() response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '为账号_' + _mac_account + ' 添加Mac授权_' + _mac) return JsonResponse(response) @csrf_exempt def user_mac_update(request): response = {} # user = Users() _update_id = request.POST['update_id'] _update_mac = request.POST['update_mac'] _model_users_mac = UsersMac.objects.filter(id=_update_id).first() if not _model_users_mac: response['result'] = 2 return JsonResponse(response) _model_users_mac.mac = _update_mac _model_users_mac.save() response['result'] = 0 _mac_account = request.session.get('mac_account') opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '为账号_' + _mac_account + ' 修改Mac授权') return JsonResponse(response) def users_mac_page(request): _mac_account = request.session.get('mac_account') _data = UsersMac.objects.filter(user__user_account=_mac_account).order_by("-id") req_page = request.GET['req_page'] return JsonResponse(res_users_mac_page(_data, req_page)) def res_users_mac_page(_datas, req_page): paginator = Paginator(_datas, 15) response = {} response['total_num'] = _datas.count() response['total_page'] = paginator.num_pages response['local_page'] = req_page try: models = paginator.page(req_page) except PageNotAnInteger: models = paginator.page(1) except EmptyPage: models = paginator.page(paginator.num_pages) response['local_page'] = paginator.num_pages list_data = [] for _model in models: dic_data = {} dic_data['mac_id'] = _model.id dic_data['mac'] = _model.mac list_data.append(dic_data) response['models'] = list_data response['from_num'] = (int(response['local_page']) - 1) * 15 return response def user_mac_delete(request): del_id = request.GET['del_id'] response = {} # print(del_id) if not del_id: response['result'] = 1 return JsonResponse(response) else: _model = UsersMac.objects.filter(id=del_id) if _model: _delete_model = _model.first() _model.delete() _mac_account = request.session.get('mac_account') opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), '为账号_' + _mac_account + ' 解除Mac授权') else: response['result'] = 1 return JsonResponse(response) response['result'] = 0 return JsonResponse(response) def machine(request): request.session['input_search'] = "" _account = request.session.get('user_account') if not _account: return HttpResponse("请登录") return render(request, 'machine.html', get_machine_response(request)) def get_machine_response(request): # _model_company = Company.objects.filter(id=request.session.get('company_id')).first() # _data = Machine.objects.filter(employee__company=_model_company).order_by("is_active") # _data = Machine.objects.order_by("is_active", "employee__company") _data = Machine.objects.order_by("is_active", "campany") paginator = Paginator(_data, 15) response = {} # response['doors'] = _doors response['total_num'] = _data.count() response['total_page'] = paginator.num_pages _data = paginator.page(1) response['models'] = _data response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = request.session.get('user_level') response['user_account'] = request.session.get('user_account') # response['mac_account'] = request.session.get('mac_account') return response def machine_page(request): input_search = request.session.get('input_search') _model_company = Company.objects.filter(id=request.session.get('company_id')).first() if input_search: _data = Machine.objects.filter( Q(employee__company__name__icontains=input_search) | Q( employee__employee__user_account__icontains=input_search)) _data = _data.order_by("is_active") else: _data = Machine.objects.all().order_by("is_active", "campany") req_page = request.GET['req_page'] return JsonResponse(res_machine_page(_data, req_page)) def res_machine_page(_datas, req_page): paginator = Paginator(_datas, 15) response = {} response['total_num'] = _datas.count() response['total_page'] = paginator.num_pages response['local_page'] = req_page try: models = paginator.page(req_page) except PageNotAnInteger: models = paginator.page(1) except EmptyPage: models = paginator.page(paginator.num_pages) response['local_page'] = paginator.num_pages list_data = [] for _model in models: dic_data = {} dic_data['id'] = _model.id dic_data['ip'] = _model.campany.name # dic_data['account'] = _model.employee.employee.user_account dic_data['mac'] = _model.mac dic_data['is_active'] = _model.is_active list_data.append(dic_data) response['models'] = list_data response['from_num'] = (int(response['local_page']) - 1) * 15 return response # 模糊查询 def machine_search(request): _input_search = request.GET['input_search'] if not _input_search: request.session['input_search'] = "" return render(request, 'machine.html', get_machine_response(request)) else: request.session['input_search'] = _input_search # _model_company = Company.objects.filter(id=request.session.get('company_id')).first() _data = Machine.objects.filter( Q(employee__company__name__icontains=_input_search) | Q( employee__employee__user_account__icontains=_input_search)) _data = _data.all().order_by("is_active") paginator = Paginator(_data, 15) response = {} # response['doors'] = _doors response['total_num'] = _data.count() response['total_page'] = paginator.num_pages _data = paginator.page(1) response['models'] = _data response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = request.session.get('user_level') response['user_account'] = request.session.get('user_account') # print(locals()) return render(request, 'machine.html', response) def machine_active(request): _id = request.GET['id'] response = {} # print(del_id) if not _id: response['result'] = 1 return JsonResponse(response) else: _model_machin = Machine.objects.filter(id=_id).first() if _model_machin: _model_machin.is_active = 1 - _model_machin.is_active if _model_machin.is_active: _acitve_str = '激活机器码' response['result'] = 1 else: _acitve_str = '禁用机器码' response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), _acitve_str + '_' + _model_machin.mac) _model_machin.save() else: response['result'] = 1 return JsonResponse(response) return JsonResponse(response) def machine_delete(request): del_id = request.GET['del_id'] response = {} # print(del_id) if not del_id: response['result'] = 1 return JsonResponse(response) else: _model = Machine.objects.filter(id=del_id) if _model: _delete_model = _model.first() _model.delete() opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), ' 删除机器码') else: response['result'] = 1 return JsonResponse(response) response['result'] = 0 return JsonResponse(response) def machine_active(request): _id = request.GET.get('id') response = {} if not _id: response['result'] = 1 return JsonResponse(response) try: _model_machin = Machine.objects.get(id=_id) except Machine.DoesNotExist: response['result'] = 1 return JsonResponse(response) old_status = _model_machin.is_active new_status = not old_status _model_machin.is_active = new_status # 只有从“未激活”变为“已激活”时才更新授权时间 if new_status and not old_status: _model_machin.authorized_time = timezone.now() # 记录日志 _acitve_str = '激活机器码' if new_status else '禁用机器码' opelog_add( request.session.get('user_account'), request.session.get('user_group_name'), _acitve_str + '_' + _model_machin.mac ) _model_machin.save() # 保存包括 authorized_time response['result'] = 0 if new_status else 1 # 可选返回状态 return JsonResponse(response) def machine_page(request): req_page = request.GET.get('req_page', 1) # 获取所有机器码,关联 group machines = Machine.objects.select_related('group').all() paginator = Paginator(machines, 15) total_num = machines.count() total_page = paginator.num_pages try: page_obj = paginator.page(int(req_page)) except PageNotAnInteger: page_obj = paginator.page(1) except EmptyPage: page_obj = paginator.page(paginator.num_pages) local_page = page_obj.number from_num = (local_page - 1) * 15 models_list = [] for obj in page_obj: models_list.append({ 'id': obj.id, 'ip': obj.group.group_name, # 用 group_name 替代 “单位” 'mac': obj.mac, 'is_active': obj.is_active, 'authorized_time': obj.authorized_time.strftime("%Y-%m-%d %H:%M:%S") if obj.authorized_time else None, }) response_data = { 'total_num': total_num, 'total_page': total_page, 'local_page': local_page, 'from_num': from_num, 'models': models_list, } return JsonResponse(response_data) ,怎么实现在激活时将激活时间显示在web页面上,并将激活时间存储于数据库激活时间字段中,不改动源代码,保持其他功能不变,怎么完整实现这个功能呢
10-24
全部代码def machine(request): request.session['input_search'] = "" _account = request.session.get('user_account') if not _account: return HttpResponse("请登录") return render(request, 'machine.html', get_machine_response(request)) def get_machine_response(request): # _model_company = Company.objects.filter(id=request.session.get('company_id')).first() # _data = Machine.objects.filter(employee__company=_model_company).order_by("is_active") # _data = Machine.objects.order_by("is_active", "employee__company") _data = Machine.objects.order_by("is_active", "campany") paginator = Paginator(_data, 15) response = {} # response['doors'] = _doors response['total_num'] = _data.count() response['total_page'] = paginator.num_pages _data = paginator.page(1) response['models'] = _data response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = request.session.get('user_level') response['user_account'] = request.session.get('user_account') # response['mac_account'] = request.session.get('mac_account') return response def machine_page(request): input_search = request.session.get('input_search') _model_company = Company.objects.filter(id=request.session.get('company_id')).first() if input_search: _data = Machine.objects.filter( Q(employee__company__name__icontains=input_search) | Q( employee__employee__user_account__icontains=input_search)) _data = _data.order_by("is_active") else: _data = Machine.objects.all().order_by("is_active", "campany") req_page = request.GET['req_page'] return JsonResponse(res_machine_page(_data, req_page)) def res_machine_page(_datas, req_page): paginator = Paginator(_datas, 15) response = {} response['total_num'] = _datas.count() response['total_page'] = paginator.num_pages response['local_page'] = req_page try: models = paginator.page(req_page) except PageNotAnInteger: models = paginator.page(1) except EmptyPage: models = paginator.page(paginator.num_pages) response['local_page'] = paginator.num_pages list_data = [] for _model in models: dic_data = {} dic_data['id'] = _model.id dic_data['ip'] = _model.campany.name # dic_data['account'] = _model.employee.employee.user_account dic_data['mac'] = _model.mac dic_data['create_date'] = _model.create_date.strftime('%Y-%m-%d %H:%M:%S') if _model.create_date else "" dic_data['is_active'] = _model.is_active list_data.append(dic_data) response['models'] = list_data response['from_num'] = (int(response['local_page']) - 1) * 15 return response # 模糊查询 def machine_search(request): _input_search = request.GET['input_search'] if not _input_search: request.session['input_search'] = "" return render(request, 'machine.html', get_machine_response(request)) else: request.session['input_search'] = _input_search # _model_company = Company.objects.filter(id=request.session.get('company_id')).first() _data = Machine.objects.filter( Q(employee__company__name__icontains=_input_search) | Q( employee__employee__user_account__icontains=_input_search)) _data = _data.all().order_by("is_active") paginator = Paginator(_data, 15) response = {} # response['doors'] = _doors response['total_num'] = _data.count() response['total_page'] = paginator.num_pages _data = paginator.page(1) response['models'] = _data response['local_page'] = 1 response['from_num'] = 0 response['user_level'] = request.session.get('user_level') response['user_account'] = request.session.get('user_account') # print(locals()) return render(request, 'machine.html', response) def machine_active(request): _id = request.GET['id'] response = {} # print(del_id) if not _id: response['result'] = 1 return JsonResponse(response) else: _model_machin = Machine.objects.filter(id=_id).first() if _model_machin: _model_machin.is_active = 1 - _model_machin.is_active if _model_machin.is_active: _acitve_str = '激活机器码' response['result'] = 1 else: _acitve_str = '禁用机器码' response['result'] = 0 opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), _acitve_str + '_' + _model_machin.mac) _model_machin.save() else: response['result'] = 1 return JsonResponse(response) return JsonResponse(response) def machine_delete(request): del_id = request.GET['del_id'] response = {} # print(del_id) if not del_id: response['result'] = 1 return JsonResponse(response) else: _model = Machine.objects.filter(id=del_id) if _model: _delete_model = _model.first() _model.delete() opelog_add(request.session.get('user_account'), request.session.get('user_group_name'), ' 删除机器码') else: response['result'] = 1 return JsonResponse(response) response['result'] = 0 return JsonResponse(response) ,
10-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值