广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python [6] IT资产管理(下)
  • 474
分享到

Python [6] IT资产管理(下)

资产管理Python 2023-01-31 07:01:12 474人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

上一篇博客聊到以下内容1、安装Django2、部署工程和应用3、修改、添加工程和应用配置文件并能成功url访问4、python脚本采集主机信息5、通过post方式传送搜集的信息到服务器端6、主机分组如需更详细的了解,请参考Http://46

上一篇博客聊到以下内容

1、安装Django

2、部署工程和应用

3、修改、添加工程和应用配置文件并能成功url访问

4、python脚本采集主机信息

5、通过post方式传送搜集的信息到服务器

6、主机分组

如需更详细的了解,请参考Http://467754239.blog.51cto.com/4878013/1616551


在这篇博客中,我们针对上篇博客中的重点部分做阐述,如何多钟方式实现第5步:

5、通过post方式传送搜集的信息到服务器端


一、Python序列化

1、序列化是什么

序列化:内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?嗯, 这取决于你想要怎么保存,怎么重用,发送给谁。很多游戏允许你在退出的时候保存进度,然后你再次启动的时候回到上次退出的地方。(实际上, 很多非游戏程序也会这么干。) 在这个情况下, 一个捕获了当前进度的数据结构需要在你退出的时候保存到磁盘上,接着在你重新启动的时候从磁盘上加载进来。这个数据只会被创建它的程序使用,不会发送到网 络上,也不会被其它程序读取。因此,互操作的问题被限制在保证新版本的程序能够读取以前版本的程序创建的数据。


2、实现序列化的方法

pickle(python语言编写)、cPickle(C语言编写)

JSON

Shelve

YAML


3、pickle和jsON的基本使用

pickle

(1)pickle将字典序列化存储到文本文件中
[root@localhost test]# pwd
/tmp/test
[root@localhost test]# ls
1_pickle_dump.py  2_pickle_load.py
[root@localhost test]# python 1_pickle_dump.py 
[root@localhost test]# ls
1_pickle_dump.py  2_pickle_load.py  dump.txt    #存储到磁盘的文件中
[root@localhost test]# cat dump.txt 
(dp0
S'age'
p1
S'25'
p2
sS'tel'
p3
S'132600*****'
p4
sS'name'
p5
S'ZhengYanSheng'
p6
s.
[root@localhost test]# cat 1_pickle_dump.py 
#!/usr/bin/env python
# 

import pickle

d = {'name':'ZhengYanSheng','age':'25','tel':'132600*****'}
with open('/tmp/test/dump.txt','w') as fd:
    pickle.dump(d,fd)
    
(2)pickle加载文本文件中的内容并生成一个新的字典
[root@localhost test]# pwd
/tmp/test
[root@localhost test]# ls
1_pickle_dump.py  2_pickle_load.py  dump.txt
[root@localhost test]# python 2_pickle_load.py 
{'age': '25', 'tel': '132600*****', 'name': 'ZhengYanSheng'}    #生成一个新的字典
[root@localhost test]# cat 2_pickle_load.py 
#!/usr/bin/env python
# 

import pickle

with open('/tmp/test/dump.txt','r') as fd:
    d1 = pickle.load(fd)
print d1

json

这次我们直接在Ipython的交互式中进行操作json的使用

(1)json的导出
[root@localhost ~]# ipython
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
Type "copyright", "credits" or "license" for more infORMation.

IPython 1.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import json

In [2]: d = {'a':'a','b':235,'c':('c1','c2'),'d':'True','e':'None'}

In [3]: d
Out[3]: {'a': 'a', 'b': 235, 'c': ('c1', 'c2'), 'd': 'True', 'e': 'None'}

In [4]: with open('/tmp/test/d.json','w') as fd:    
   ...:     json.dump(d,fd)    #写入到文件中
   ...:  
Do you really want to exit ([y]/n)? 
[root@localhost ~]# cat /tmp/test/d.json     #在shell模式下查看写入的文件内容
{"a": "a", "c": ["c1", "c2"], "b": 235, "e": "None", "d": "True"}


(2)json的载入
[root@localhost ~]# ipython
Python 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) 
Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import json

In [2]: with open('/tmp/test/d.json','r') as fd:
   ...:     dd = json.load(fd)

In [3]: print dd
{u'a': u'a', u'c': [u'c1', u'c2'], u'b': 235, u'e': u'None', u'd': u'True'}


二、多种以POST方式传参的列子

1、pickle的方式

(1)修改views.py文件

[root@localhost Simplecmdb]# cat hostinfo/views.py  
from djanGo.shortcuts import render
from django.http import HttpResponse
from hostinfo.models import Host
import pickle    #导入pickle模块
 
# Create your views here.
def index(req):
    if req.method == 'POST':
    pick_obj = pickle.loads(req.body) #接受客户端的传参是一个字典   
        hostname = pick_obj['hostname']    #既然是一个字典,那么我们就一个变量变量的接收
        ip = pick_obj['ip']
        osversion = pick_obj['osversion']
        memory = pick_obj['memory']
        disk = pick_obj['disk']
        vendor_id = pick_obj['vendor_id']
        model_name = pick_obj['model_name']
        cpu_core = pick_obj['cpu_core']
        product = pick_obj['product']
        Manufacturer = pick_obj['Manufacturer']
        sn = pick_obj['sn']
 
    try:
        host = Host.objects.get(hostname=hostname)
    except:
            host = Host()
        host.hostname = hostname
        host.ip = ip
        host.osversion = osversion
        host.memory = memory
        host.disk = disk
        host.vendor_id = vendor_id
        host.model_name = model_name
        host.cpu_core = cpu_core
        host.product = product
        host.Manufacturer = Manufacturer
        host.sn = sn    
        host.save()
        return HttpResponse('ok')
    else:
        return HttpResponse('no data')

(2)修改搜集主机信息脚本(需要修改一个地方)

[root@localhost Simplecmdb]# vim post_hostinfo.py 
 
#!/usr/bin/env python
#coding:utf8
#author:Allentuns
#time:2015-02-14
 
from subprocess import Popen,PIPE
import urllib,urllib2
import pickle
import json
import re
 
###[hostname message]#####
def get_HostnameInfo(file):
    with open(file,'r') as fd:
        data = fd.read().split('\n')
        for line in data:
            if line.startswith('HOSTNAME'):
                hostname = line.split('=')[1]
                break
    return hostname
 
#####[ipaddr message]#####
def get_Ipaddr():
    P = Popen(['ifconfig'],stdout=PIPE)
    data = P.stdout.read()
    list = []
    str = ''
    option = False
    lines = data.split('\n')
    for line in lines:
        if not line.startswith(' '):
            list.append(str)
            str = line
        else:
            str += line
    while True:
        if '' in list:
            list.remove('')
        else:
            break
    r_devname = re.compile('(eth\d*|lo)')
    r_Mac = re.compile('HWaddr\s([A-F0-9:]{17})')
    r_ip = re.compile('addr:([\d.]{7,15})')
    for line in list:
        devname = r_devname.findall(line)
        mac = r_mac.findall(line)
        ip = r_ip.findall(line)
        if mac:
            return  ip[0]
 
#####[osversion message]#####
def get_OsVerion(file):
    with open(file) as fd:
        lines = fd.readlines()
        os_version = lines[0][:-8]
        return os_version
 
#####[memory message]#####
def get_MemoryInfo(file):
   with open(file) as fd:
        data_list = fd.read().split('\n')
        MemTotal_line = data_list[0]
        Memory_K = MemTotal_line.split()[1]
        Memory_G = float(Memory_K)/1000/1000
        Memory_G2 = '%.2f' % Memory_G
        memory = Memory_G2 + 'G'
        return memory
 
#####[disk message]#####
def get_DiskInfo():
    p = Popen(['fdisk','-l'],stdout=PIPE,stderr=PIPE)
    stdout,stderr = p.communicate()
    diskdata = stdout
 
    disk_initial_size = 0
    re_disk_type = re.compile(r'Disk /dev/[shd]{1}.*:\s+[\d.\s\w]*,\s+([\d]+).*')
    disk_size_bytes = re_disk_type.findall(diskdata)
    for size in disk_size_bytes:
        disk_initial_size += int(size)
    disk_size_total_bytes = '%.2f'  % (float(disk_initial_size)/1000/1000/1000)
    disk_size_total_G = disk_size_total_bytes + 'G'
    disk = disk_size_total_G
    return disk
 
#####[cpu message]#####
def get_CpuInfo():
    p = Popen(['cat','/proc/cpuinfo'],stdout=PIPE,stderr=PIPE)
    stdout, stderr = p.communicate()
    cpudata = stdout.strip()
 
    cpu_dict = {}
    re_cpu_cores = re.compile(r'processor\s+:\s+([\d])')
    re_vendor_id = re.compile(r'vendor_id\s+:\s([\w]+)')
    re_model_name = re.compile(r'model name\s+:\s+(.*)')
 
    res_cpu_cores = re_cpu_cores.findall(cpudata)
    cpu_dict['Cpu_Cores'] = int(res_cpu_cores[-1]) + 1
    res_vendor_id = re_vendor_id.findall(cpudata)
    cpu_dict['Vendor_Id'] = res_vendor_id[-1]
    res_model_name = re_model_name.findall(cpudata)
    cpu_dict['Model_Name'] = res_model_name[-1]
    return cpu_dict
 
#####[Demi message]#####
def get_dmidecode():
    P = Popen(['dmidecode'],stdout=PIPE)
    data = P.stdout.read()
    lines = data.split('\n\n')
    dmidecode_line =  lines[2]
    line = [i.strip() for i in dmidecode_line.split('\n') if i]
    Manufacturer = line[2].split(': ')[-1]
    product = line[3].split(': ')[-1]
    sn = line[5].split(': ')[-1]
    return Manufacturer,product,sn
 
if __name__ == '__main__':
    #####[get data]#####
    hostname = get_HostnameInfo('/etc/sysconfig/network')
    ip = get_Ipaddr()
    osversion = get_OsVerion('/etc/issue')
    memory = get_MemoryInfo('/proc/meminfo')
    disk = get_DiskInfo()
    Vendor_Id = get_CpuInfo()['Vendor_Id']
    Model_Name = get_CpuInfo()['Model_Name']
    Cpu_Cores = get_CpuInfo()['Cpu_Cores']
    Manufacturer,product,sn = get_dmidecode()
 
    #####[get dict]##### 
    hostinfo = {
        'hostname':hostname,
        'ip':ip,
        'osversion':osversion,
        'memory':memory,
        'disk':disk,
        'vendor_id':Vendor_Id,
        'model_name':Model_Name,
        'cpu_core':Cpu_Cores,
        'product':product,
        'Manufacturer':Manufacturer,
        'sn':sn,
        }
    print hostinfo
    #data = urllib.urlencode(hostinfo)    #注释掉原来
    data = pickle.dumps(hostinfo)    #添加一行
 
    req = urllib2.urlopen('http://192.168.1.210:80/hostinfo',data)

(3)执行此脚本

[root@localhost Simplecmdb]# python post_hostinfo.py 
{'product': 'VMware Virtual Platform', 'ip': '192.168.1.210', 'vendor_id': 'GenuineIntel', 'cpu_core': 1, 'disk': '17.18G', 'hostname': 'localhost.localdomain', 'sn': 'VMware-56 4d 41 69 ad a2 e6 3c-84 eb 81 81 e9 b4 4a 54', 'memory': '0.50G', 'osversion': 'Centos release 6.4 ', 'model_name': 'Intel(R) Xeon(R) CPU E5-2407 0 @ 2.20GHz', 'Manufacturer': 'VMware, Inc.'}

(4)刷新浏览器,会看到新添加了一行

wKioL1T1U-3Cv96tAAkYqbtpQsg850.jpg


2、json方式(和上述方法基本相同)

(1)修改views.py文件

[root@localhost Simplecmdb]# cat hostinfo/views.py
from django.shortcuts import render
from django.http import HttpResponse
from hostinfo.models import Host
import pickle
import json    #导入模块

# Create your views here.
def index(req):
    if req.method == 'POST':
	pick_obj = json.loads(req.body)    #修改此处
        hostname = pick_obj['hostname']
        ip = pick_obj['ip']
        osversion = pick_obj['osversion']
        memory = pick_obj['memory']
        disk = pick_obj['disk']
        vendor_id = pick_obj['vendor_id']
        model_name = pick_obj['model_name']
        cpu_core = pick_obj['cpu_core']
        product = pick_obj['product']
        Manufacturer = pick_obj['Manufacturer']
        sn = pick_obj['sn']

	try:
	    host = Host.objects.get(hostname=hostname)
	except:
            host = Host()
        host.hostname = hostname
        host.ip = ip
        host.osversion = osversion
        host.memory = memory
        host.disk = disk
        host.vendor_id = vendor_id
        host.model_name = model_name
        host.cpu_core = cpu_core
        host.product = product
        host.Manufacturer = Manufacturer
        host.sn = sn    
        host.save()
        return HttpResponse('ok')
    else:
        return HttpResponse('no data')

(2)修改搜集主机信息脚本(需要修改一个地方)

[root@localhost Simplecmdb]# cat post_hostinfo.py 
#!/usr/bin/env python
#coding:utf8
#author:Allentuns
#time:2015-02-14

from subprocess import Popen,PIPE
import urllib,urllib2
import pickle
import json
import re

###[hostname message]#####
def get_HostnameInfo(file):
    with open(file,'r') as fd:
        data = fd.read().split('\n')
        for line in data:
            if line.startswith('HOSTNAME'):
                hostname = line.split('=')[1]
                break
    return hostname

#####[ipaddr message]#####
def get_Ipaddr():
    P = Popen(['ifconfig'],stdout=PIPE)
    data = P.stdout.read()
    list = []
    str = ''
    option = False
    lines = data.split('\n')
    for line in lines:
        if not line.startswith(' '):
            list.append(str)
            str = line
        else:
            str += line
    while True:
        if '' in list:
            list.remove('')
        else:
            break
    r_devname = re.compile('(eth\d*|lo)') 
    r_mac = re.compile('HWaddr\s([A-F0-9:]{17})')
    r_ip = re.compile('addr:([\d.]{7,15})')
    for line in list:
        devname = r_devname.findall(line)
        mac = r_mac.findall(line)
        ip = r_ip.findall(line)
        if mac:
            return  ip[0]

#####[osversion message]#####
def get_OsVerion(file):
    with open(file) as fd:
	lines = fd.readlines()
	os_version = lines[0][:-8]
	return os_version

#####[memory message]#####
def get_MemoryInfo(file):
   with open(file) as fd:
        data_list = fd.read().split('\n')
        MemTotal_line = data_list[0]
        Memory_K = MemTotal_line.split()[1]
        Memory_G = float(Memory_K)/1000/1000
        Memory_G2 = '%.2f' % Memory_G
        memory = Memory_G2 + 'G'
        return memory

#####[disk message]#####
def get_DiskInfo():
    p = Popen(['fdisk','-l'],stdout=PIPE,stderr=PIPE)
    stdout,stderr = p.communicate()
    diskdata = stdout

    disk_initial_size = 0
    re_disk_type = re.compile(r'Disk /dev/[shd]{1}.*:\s+[\d.\s\w]*,\s+([\d]+).*')
    disk_size_bytes = re_disk_type.findall(diskdata)
    for size in disk_size_bytes:
	disk_initial_size += int(size)
    disk_size_total_bytes = '%.2f'  % (float(disk_initial_size)/1000/1000/1000)
    disk_size_total_G = disk_size_total_bytes + 'G'
    disk = disk_size_total_G
    return disk

#####[cpu message]#####
def get_CpuInfo():
    p = Popen(['cat','/proc/cpuinfo'],stdout=PIPE,stderr=PIPE)
    stdout, stderr = p.communicate()
    cpudata = stdout.strip()

    cpu_dict = {}
    re_cpu_cores = re.compile(r'processor\s+:\s+([\d])')
    re_vendor_id = re.compile(r'vendor_id\s+:\s([\w]+)')
    re_model_name = re.compile(r'model name\s+:\s+(.*)')

    res_cpu_cores = re_cpu_cores.findall(cpudata)
    cpu_dict['Cpu_Cores'] = int(res_cpu_cores[-1]) + 1
    res_vendor_id = re_vendor_id.findall(cpudata)
    cpu_dict['Vendor_Id'] = res_vendor_id[-1]
    res_model_name = re_model_name.findall(cpudata)
    cpu_dict['Model_Name'] = res_model_name[-1]
    return cpu_dict

#####[Demi message]#####
def get_dmidecode():
    P = Popen(['dmidecode'],stdout=PIPE)
    data = P.stdout.read()
    lines = data.split('\n\n')
    dmidecode_line =  lines[2]    
    line = [i.strip() for i in dmidecode_line.split('\n') if i]
    Manufacturer = line[2].split(': ')[-1]
    product = line[3].split(': ')[-1]
    sn = line[5].split(': ')[-1]
    return Manufacturer,product,sn

if __name__ == '__main__':
    #####[get data]#####
    hostname = get_HostnameInfo('/etc/sysconfig/network')
    ip = get_Ipaddr()
    osversion = get_OsVerion('/etc/issue')
    memory = get_MemoryInfo('/proc/meminfo')
    disk = get_DiskInfo()
    Vendor_Id = get_CpuInfo()['Vendor_Id']
    Model_Name = get_CpuInfo()['Model_Name']
    Cpu_Cores = get_CpuInfo()['Cpu_Cores']
    Manufacturer,product,sn = get_dmidecode()
    
    #####[get dict]##### 
    hostinfo = {
	'hostname':hostname,
	'ip':ip,
	'osversion':osversion,
	'memory':memory,
	'disk':disk,
	'vendor_id':Vendor_Id,
	'model_name':Model_Name,
	'cpu_core':Cpu_Cores,
	'product':product,
	'Manufacturer':Manufacturer,
	'sn':sn,
	}
    print hostinfo
    #data = urllib.urlencode(hostinfo)
    #data = pickle.dumps(hostinfo)    #注释掉
    data = json.dumps(hostinfo)       #添加一行

    req = urllib2.urlopen('http://192.168.1.210:80/hostinfo',data)

(3)执行此脚本

[root@localhost Simplecmdb]# python post_hostinfo.py 
{'product': 'VMware Virtual Platform', 'ip': '192.168.1.210', 'vendor_id': 'GenuineIntel', 'cpu_core': 1, 'disk': '17.18G', 'hostname': 'localhost.localdomain', 'sn': 'VMware-56 4d 41 69 ad a2 e6 3c-84 eb 81 81 e9 b4 4a 54', 'memory': '0.50G', 'osversion': 'CentOS release 6.4 ', 'model_name': 'Intel(R) Xeon(R) CPU E5-2407 0 @ 2.20GHz', 'Manufacturer': 'VMware, Inc.'}

(4)刷新浏览器,会看到再次新添加了一行

wKioL1T1VqXixKeOAAm22zx6Q9w076.jpg



--结束END--

本文标题: Python [6] IT资产管理(下)

本文链接: https://www.lsjlt.com/news/191420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python [6] IT资产管理(下)
    上一篇博客聊到以下内容1、安装django2、部署工程和应用3、修改、添加工程和应用配置文件并能成功url访问4、Python脚本采集主机信息5、通过post方式传送搜集的信息到服务器端6、主机分组如需更详细的了解,请参考http://46...
    99+
    2023-01-31
    资产管理 Python
  • 搭建glpi(IT资产管理系统)
    目录 1.环境准备 2.安装环境依赖 3.安装mariadb 4.安装httpd 5.源码:glpi-project 6.修改服务器的时间: 7.安装fusioninventory插件(fusioninventory) 8.Client(W...
    99+
    2023-09-05
    服务器 centos php
  • 钉钉宜搭it资产管理系统
    一、系统功能 资产管理:该系统可以对IT资产进行全面、详细的管理,包括硬件设备、软件资产、网络设备、存储设备等,并且支持资产的分类、编码、分项管理。 设备管理:该系统可以对IT资产中的硬件设备进行统一的管理,包括硬件设备的采购、领用、维...
    99+
    2023-10-28
    管理系统 资产 钉钉宜搭
  • 在CENTOS 7上安装SNIPE-IT进行资产管理
    文章目录 介绍环境简介部署过程1. 配置防火墙2. 安装EPEL 存储库3. 安装REMI 存储库4. 安装NGINX5. 安装MariaDB数据库6. 配置MariaDB 数据库7. 创建数...
    99+
    2023-09-02
    centos php linux
  • 钉钉 资产管理
    一、资产信息管理 钉钉的资产管理功能中,最重要的就是资产信息管理。这个功能主要是用于管理公司的各类资产,包括硬件设备、软件系统、办公用品等等。它可以将公司的资产信息录入到系统中,并进行分类、分类管理,方便了资产管理人员对公司资产的了解和管...
    99+
    2023-10-28
    资产管理
  • 钉钉管理固定资产
    固定资产管理的流程通常包括以下几个步骤: 记录和分类资产 在企业中,固定资产种类繁多,包括电脑、服务器、办公家具等。这些资产的记录和分类非常重要,可以确保资产的使用情况和维护情况。可以按照产品类型、使用部门、设备型号等不同的维度来进行...
    99+
    2023-10-28
    固定资产
  • 钉钉资产管理系统
    一、功能介绍 资产管理:包括对资产的收购、入库、领用、盘点、调拨、报废等方面的管理。 财务管理:包括收支账务管理、资金管理、财务报表等方面的管理。 供应链管理:包括与供应商的协作、订单管理、库存管理等方面的管理。 人力资源管理:包括员工...
    99+
    2023-10-28
    管理系统 资产
  • 钉钉固定资产管理
    作为一个智能化办公平台,钉钉在企业管理方面有着巨大的作用。其中,固定资产管理作为其中重要的一环,是每个企业都应该重视的管理工作。本文将围绕钉钉固定资产管理展开探讨。 一、钉钉固定资产管理的意义 钉钉固定资产管理是企业数字化转型的基础之一,...
    99+
    2023-10-28
    固定资产管理
  • 钉钉上资产管理软件
    在使用钉钉上资产管理软件时,我们需要先进行注册,填写相关的信息,如企业名称、注册时间、联系人等。在注册完成后,我们就可以开始使用该软件了。在软件中,我们可以通过不同的功能模块来管理资产,例如: 资产列表模块:该模块可以帮助我们管理企业的...
    99+
    2023-10-28
    管理软件 资产 钉上
  • 钉钉 资产管理 哪个好
    首先,让我们来看看钉钉的资产管理功能。钉钉提供了丰富的资产管理功能,包括资产上传、下载、更新、删除、统计等。用户可以轻松地将各种硬件设备、软件系统、应用程序等资产添加到自己的系统中,并对其进行有效的管理和维护。 其次,钉钉资产管理的优势还...
    99+
    2023-10-28
    资产管理
  • 钉钉做固定资产管理
    一、为什么要使用钉钉管理固定资产 使用钉钉管理固定资产是提高工作效率和工作质量的重要方式。首先,它可以实现内部沟通和协作,让企业内部各部门之间更加高效地协作,减少沟通误解和工作冲突的发生。其次,钉钉提供了安全可靠的通讯工具,让企业资产的信...
    99+
    2023-10-28
    固定资产管理 钉钉做
  • 利用Python框架django开发资产管理系统
    概述...
    99+
    2023-06-02
  • Java实战中IT设备固定资产管理系统的实现流程是这样的
    这篇文章将为大家详细讲解有关Java实战中IT设备固定资产管理系统的实现流程是这样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、项目简述功能包括: 用户登录,设备管理,设备指派,贝附信...
    99+
    2023-06-25
  • Java 实战项目锤炼之IT设备固定资产管理系统的实现流程
    一、项目简述 功能包括: 用户登录,设备管理,设备指派,贝附信息,信息公告, 信息维护,系统管理,图表统计等等功能。 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 ...
    99+
    2022-11-12
  • 钉钉应用开发 资产管理
    首先,钉钉应用开发的资产管理功能可以帮助用户轻松地查询应用中的资产信息。用户可以在应用中直接点击资产名称或资产编号,就可以快速查询到应用中的资产信息。此外,用户还可以通过应用中的资产管理功能进行资产分类,例如:房屋、汽车、设备等等。通过这种...
    99+
    2023-10-28
    资产管理
  • 钉钉资产管理哪个好用
    钉钉资产管理的优点在于它的高效性。企业可以利用钉钉的工作管理平台,快速地管理和维护各种资产,包括但不限于硬件设备、软件资产、办公用品等等。这些资产的管理可以通过手机、电脑、平板等多种设备进行,而且还可以利用数据分析功能对资产的使用情况进行实...
    99+
    2023-10-28
    好用 资产管理
  • 钉钉有没有固定资产管理
    固定资产是企业的资产之一,包括设备、机器、工具、家具、办公用品等等。它们在使用过程中会不断更新、淘汰和损耗,而如果不进行管理和维护,这些资产就会变得陈旧和过时,不仅会影响企业的生产力,还会对员工的工作和生活产生负面影响。因此,企业需要对固定...
    99+
    2023-10-28
    固定资产管理 钉钉有
  • 钉钉可以管理固定资产吗
    一、钉钉可以管理固定资产的功能 钉钉可以管理固定资产的功能非常强大,包括以下几个方面: 资产管理:钉钉可以对企业的固定资产进行分类、归档、查询等操作,从而实现对固定资产的全生命周期管理。 资产管理:钉钉可以对企业的固定资产进行实时监控、...
    99+
    2023-10-28
    固定资产
  • 钉钉可以固定资产管理吗
    钉钉作为一款面向企业级市场的应用,拥有非常多的固定资产管理功能,例如设备管理、库存管理、采购管理、财务管理等等。这些功能对于企业来说非常重要,可以帮助企业管理资产,确保企业资产的安全和可持续性。 然而,对于一些对企业级应用并不熟悉的用户来...
    99+
    2023-10-28
    固定资产管理
  • 钉钉可以做固定资产管理
    首先,在钉钉上,企业可以建立一个固定资产管理的账户,将各种资产的属性、价值和使用情况等信息录入进去,并进行分类和统计。这个账户可以随时提醒企业管理人员,确保企业的资产不会因为人为原因出现损失。 其次,钉钉还提供了一个资产管理的应用,这个应...
    99+
    2023-10-28
    固定资产管理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作