当前位置: 首页 > news >正文

推广型网站wordpress页面怎么添加

推广型网站,wordpress页面怎么添加,网站设计模板图片,电商网站设计公司有哪些JSON#xff08;JavaScript Object Notation#xff09;是一种轻量级的数据交换格式#xff0c;它以易于阅读和编写的文本形式表示数据。JSON 是一种独立于编程语言的数据格式#xff0c;因此在不同的编程语言中都有对应的解析器和生成器。JSON 格式的设计目标是易于理解、…JSONJavaScript Object Notation是一种轻量级的数据交换格式它以易于阅读和编写的文本形式表示数据。JSON 是一种独立于编程语言的数据格式因此在不同的编程语言中都有对应的解析器和生成器。JSON 格式的设计目标是易于理解、支持复杂数据结构和具有良好的可扩展性。 JSON 数据是以键值对的形式存在的而且易于阅读和编写。以下是一个简单的 JSON 示例 {name: John Doe,age: 30,city: New York,isStudent: false,grades: [95, 88, 75, 92],address: {street: 123 Main St,zipCode: 10001} }在这个例子中JSON 对象包含了一些属性包括字符串、数字、布尔值、数组和嵌套的对象。 name: John Doe字符串键值对。age: 30数字键值对。city: New York字符串键值对。isStudent: false布尔键值对。grades: [95, 88, 75, 92]数组键值对。address: {...}嵌套对象。 在实际应用中JSON 数据通常用于前后端之间的数据交换或者配置文件的存储。各种编程语言都提供了处理 JSON数据的库或模块。 很早之前大概是两年前当时为了实现批量管理SSH账号密码并实现自动巡检功能写过一个简单的命令行工具通过使用JSON实现对特定主机账号密码与组的管理如下代码通过定义AdminDataBase()类传如数据库文件名database.json实现对特定JSON文件的增删改查功能在编写该案例后我对JSON的使用变得更加深刻了。 # -*- coding: utf-8 -*- import os,jsonclass AdminDataBase(object):def __init__(self, database_path):self.database_path database_path# 判断数据库文件是否存在,不存则则创建一个.def InitDatabase(self):if os.path.exists(self.database_path) ! None :init_database \{HostList: [[1000, 127.0.0.1, username, password, 22]],HostGroup: [{DefaultGroup: [1000]}, ],}with open(self.database_path, w, encodingutf-8) as fp:fp.write(json.dumps(init_database))print([] {} 结构已被初始化..format(self.database_path))# table 接收一个列表名,根据列表名输出列表中的数据def ShowHostList(self):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads(Read_Pointer.read())base load_json.get(HostList)print(- * 80)print(UUID \t 主机地址 \t\t\t 登录用户 \t\t 登录密码 \t 端口)print(- * 80)for each in range(0, len(base)):print({0:4} \t {1:15} \t {2:10} \t {3:10} \t {4:10}.format(base[each][0], base[each][1], base[each][2], base[each][3], base[each][4]))print()# 在原来的基础上添加一台新的主机,添加到HostList表中def AddHost(self, uuid, address, username, password, port):with open(self.database_path, r, encodingutf-8) as Read_Pointer:# 读取 database.json 中的数据到内存中load_json json.loads(Read_Pointer.read())# 先读入内存,修改后全部替换进去host_list load_json.get(HostList)# 获取到最后一次循环的元素列表for each in range(len(host_list) - 1, len(host_list)):# 判断如果UUID不重复则添加,否则跳过添加if (host_list[each][0] ! uuid):host_list.append([uuid, address, username, password, port])load_json[HostList] host_list# 最后再次将改好的数据,回写到文件保存with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([] UUID {} 添加成功..format(uuid))else:print([-] UUID {} 列表中存在,添加失败..format(uuid))return 0# 根据传入UUID号修改特定主机数据def ModifyHost(self,uuid,modify_address,modify_username,modify_password,modify_port):with open(self.database_path, r, encodingutf-8) as Read_Pointer:# 读取 database.json 中的数据到内存中load_json json.loads(Read_Pointer.read())host_list load_json.get(HostList)# 根据uuid寻找一维数组的下标位置index -1for index, value in enumerate(host_list):if value[0] uuid:print([*] 已找到UUID {} 所在下标为 {}.format(uuid,index))breakelse:index -1# 判断是否找到了,找到了则修改if index ! -1:# 修改指定下标数值,并将修改后的数据放入原始JSON文件中host_list[index] [uuid,modify_address,modify_username,modify_password,modify_port]load_json[HostList] host_list# 最后再次将改好的数据,回写到文件保存with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([] UUID {} 修改完成..format(uuid))return 0else:print([-] UUID {} 不存在..format(uuid))return 0# 根据传入的UUID号删除主机数据,先删除所对的组中的数据,然后在删除主机数据def DeleteHost(self,uuid):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads(Read_Pointer.read())host_group load_json.get(HostGroup)# 首先在HostGroup中寻找并弹出相应UUIDfor each in range(0,len(host_group)):try:# 循环每个字典for k,v in host_group[each].items():# 判断UUID是否存在于每个字典中if v.count(uuid) ! 0:# 移除并放入原始JSON中v.remove(uuid)load_json[HostGroup] v# 最后再次将改好的数据,回写到文件保存with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)#print([] UUID {} 修改完成..format(uuid))else:#print([-] 当前组 {} 不能存在: {}.format(k,uuid))breakexcept Exception:print([-] 当前组不能存在: {}.format(uuid))return 0# ----------------------------------------------# 其次寻找HostList中的数据并弹出host_list load_json.get(HostList)try:# 根据uuid寻找一维数组的下标位置index -1for index, value in enumerate(host_list):if value[0] uuid:#print([*] 已找到UUID {} 所在下标为 {}.format(uuid,index))breakelse:index -1# 如果找到了,则直接根据下标弹出数据if index ! -1:host_list.pop(index)load_json[HostList] host_list# 最后再次将改好的数据,回写到文件保存with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([] UUID {} 主机: {} 已被移除..format(uuid,host_list[index][1]))return 0except Exception:return 0# 向数据库中的HostGroup字段中添加一个主机组def AddHostGroup(self,add_group_name):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环所有字典中的组for each in range(0, len(group_obj)):list_name str(list(group_obj[each].keys())[0])# print(组节点: {}.format(list_name))# 循环判断表中是否存在指定的组名称if (list_name add_group_name):print([-] {} 存在于组中,无法继续添加..format(list_name))return 0# 读取原始JSON文件,并构建回写参数tmp {}tmp[add_group_name] [1000]group_obj.append(tmp)# 回写添加主机组with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([] 主机组 {} 已添加.format(add_group_name))# 在主机组中删除一个主机组def DeleteHostGroup(self,delete_group_name):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环所有字典中的组for each in range(0, len(group_obj)):list_name str(list(group_obj[each].keys())[0])# 循环判断表中是否存在指定的组名称if (list_name delete_group_name):# 如果存在于组中,那我们就把他的each弹出列表group_obj.pop(each)# 将弹出后的列表再次写回JSON序列中with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([-] 主机组 {} 已移除..format(delete_group_name))return 0print([-] 主机组 {} 不存在..format(delete_group_name))return 0# 向指定主机组中添加一个主机UUIDdef AddHostGroupOnUUID(self,group_name, uuid):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环所有字典中的所有组for each in range(0, len(group_obj)):list_name str(list(group_obj[each].keys())[0])# 如果找到了需要添加的组if (list_name group_name):tmp group_obj[each]# 获取到原始列表中的数据val list(tmp.values())[0]# 判断输入的UUID号,是否在val列表中,不在则添加if str(uuid) not in val:val.append(str(uuid))# 将原始数据赋值到新的表中group_obj[each][list_name] valelse:print([-] UUID {} 已存在于 {} 主机组,添加失败..format(uuid,group_name))return 0with open(self.database_path, w, encodingutf-8) as Write_Pointer:dump_json json.dumps(load_json)Write_Pointer.write(dump_json)print([] 向主机组 {} 增加UUID {} 完成.format(group_name, uuid))return 0# 从指定主机组中删除一个指定的UUID号def DeleteHostGroupOnUUID(self,group_name, uuid):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环所有字典中的组for each in range(0, len(group_obj)):list_name str(list(group_obj[each].keys())[0])# 先来寻找到需要删除的主机组if (list_name group_name):tmp group_obj[each]# 寻找指定组中的指定列表val list(tmp.values())[0]for x in range(0, len(val)):if (val[x] uuid):print([*] 搜索UUID: {} 索引值: {}.format(val[x], x))# 将要删除的UUID弹出列表val.pop(x)# 将弹出后的列表重新复制到主机组中group_obj[each][list_name] val# 保存弹出后的列表到序列中with open(self.database_path, w, encodingutf-8) as write_fp:dump_json json.dumps(load_json)write_fp.write(dump_json)print([] 从主机组 {} 弹出UUID {} 完成.format(group_name, uuid))return 0return 0# 输出所有主机组和全部节点信息def ShowAllGroup(self):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环解析所有组,并解析出UUID所对应的主机地址等信息for each in range(0, len(group_obj)):for k, v in group_obj[each].items():print(- * 140)print(主机组: {}.format(k))print(- * 140)for each in range(0, len(v)):# print(-- UUID: {}.format(v[each]))# 循环判断,拿着组内UUID判断是否存在,如果存在则打印出主机详细信息base_obj load_json.get(HostList)for x in range(0, len(base_obj)):if (v[each] base_obj[x][0]):print(UUID: {0:6} \t 主机地址: {1:15} \t 主机账号: {2:15} \t 主机密码: {3:15} \t 端口: {4:5} \t.format(base_obj[x][0], base_obj[x][1], base_obj[x][2], base_obj[x][3],base_obj[x][4]))print(\n)# 只显示所有的主机组,包括组中主机数def ShowGroup(self):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)print(- * 80)print({0:20} \t {1:5} \t {2:100}.format(主机组名,主机数,主机列表))print(- * 80)for each in range(0,len(group_obj)):for k,v in group_obj[each].items():print({0:20} \t {1:5} \t {2:100}.format(k,str(len(v)), str(v)))print()return 0# 对指定的主机组进行Ping测试def PingGroup(self,group_name):with open(self.database_path, r, encodingutf-8) as Read_Pointer:load_json json.loads( Read_Pointer.read() )group_obj load_json.get(HostGroup)# 循环遍历主机列表for each in range(0, len(group_obj)):for k, v in group_obj[each].items():# 寻找主机组,找到后提取出所有的Valueif (k group_name):item_list v# 再循环,拿着v的值对base进行循环,提取出其中的用户名密码等for val in range(0, len(item_list)):# 得到循环列表print(item_list[val])base_obj load_json.get(HostList)# 循环base表中的计数器for base_count in range(0, len(base_obj)):# 判断base表中是否存在指定UUID,如果存在则输出其值if (base_obj[base_count][0] item_list[val]):print(地址: {} \t 用户名: {} [ok].format(base_obj[base_count][1],base_obj[base_count][2])) if __name__ __main__:db AdminDataBase(database.json)while True:try:cmd str(input([LyShell] # )).split()if (cmd ):continueelif (cmd[0] exit):exit(1)elif (cmd[0] clear):os.system(cls)elif(cmd[0] Init):db.InitDatabase()elif(cmd[0] ShowHostList):db.ShowHostList()elif(cmd[0] ShowGroup):db.ShowGroup()elif(cmd[0] ShowAllGroup):db.ShowAllGroup()elif(cmd[0] AddHost or cmd[0] ModifyHost):if (len(cmd) - 1 5):uuid str(cmd[1]).split()[1]address str(cmd[2]).split()[1]username str(cmd[3]).split()[1]password str(cmd[4]).split()[1]port str(cmd[5]).split()[1]if cmd[0] AddHost:db.AddHost(uuid,address,username,password,port)elif cmd[0] ModifyHost:db.ModifyHost(uuid,address,username,password,port)elif(cmd[0] DeleteHost):if(len(cmd)-1 1):uuid str(cmd[1]).split()[1]db.DeleteHost(uuid)elif(cmd[0] AddHostGroup):group_name str(cmd[1]).split()[1]db.AddHostGroup(group_name)elif(cmd[0] DeleteHostGroup):group_name str(cmd[1]).split()[1]db.DeleteHostGroup(group_name)elif(cmd[0] AddHostGroupOnUUID):group_name str(cmd[1]).split()[1]uuid str(cmd[2]).split()[1]db.AddHostGroupOnUUID(group_name,uuid)elif(cmd[0] DelHostGroupOnUUID):group_name str(cmd[1]).split()[1]uuid str(cmd[2]).split()[1]db.DeleteHostGroupOnUUID(group_name,uuid)elif(cmd[0] PingGroup):group_name str(cmd[1]).split()[1]db.PingGroup(group_name)elif (cmd[0] help):print(By: LyShark)else:print(Not Command)except Exception:continue使用案例 管理数据库AdminDataBase中的主机信息和主机分组信息。用户通过输入命令来执行不同的操作如初始化数据库、显示主机列表、添加主机、修改主机信息、删除主机等。 以下是代码的主要功能和命令列表 初始化数据库Init显示主机列表ShowHostList显示主机分组ShowGroup显示所有主机分组ShowAllGroup添加主机AddHost修改主机信息ModifyHost删除主机DeleteHost添加主机分组AddHostGroup删除主机分组DeleteHostGroup将主机添加到指定分组AddHostGroupOnUUID从指定分组删除主机DelHostGroupOnUUID按组执行 Ping 操作PingGroup清屏clear退出程序exit帮助help Init 初次使用需要执行本命令对数据库文件进行写出如下所示 ShowHostList 用于输出当前主机列表信息如下图所示 ShowGroup 用于输出当前主机组如下图所示 ShowAllGroup 用于输出所有的主机组以及组内的主机详细信息如下图所示 AddHost 添加一个新的主机记录如下图所示 ModifyHost 修改一个已有的主机记录此处以UUID作为修改条件如下图所示 DeleteHost 根据一个UUID唯一标识删除一个已存在的主机记录如下图所示 AddHostGroup 新增一个组名默认会携带1000为初始主机如下图所示 DeleteHostGroup 删除一整个主机组如下图所示 AddHostGroupOnUUID 根据UUID号将特定主机添加到特定组内如下图所示 DelHostGroupOnUUID 根据主机组名删除特定的UUID如下图所示 PingGroup 对特定主机组执行Ping功能测试此处可以扩展如下图所示 总结部分 该案例只是用于学习如何灵活运用JSON实现数据的增删改查其实在实战中意义不大因为完全可以使用SQLite这类精简数据库此案例只是本人为了熟悉JSON的增删改查而写的一个Demo工具。
http://www.w-s-a.com/news/346078/

相关文章:

  • 网站备案背景幕布阳江东莞网站建设
  • 北京网站建设要多少钱html网站标签
  • 做兼职做网站的是什么公司网站怎么修改
  • 舆情监控都有哪些内容西安seo网站公司
  • 网站有域名没备案天津网络营销
  • 哈巴狗模式网站开发电子商务平台建设与运营技术
  • 摄影网站源码wordpress内涵段子
  • 实验一 电子商务网站建设与维护图片做网站
  • 网站策划书模板大全中国建设部官方网站资格证查询
  • vps绑定多个网站创意咨询策划公司
  • 做qq图片的网站网页制作与网站建设江西
  • 做爰全过程的视频网站网络文化经营许可证怎么办
  • 常德市网站建设网站开发用哪个软件好
  • 网站文章怎么更新时间重庆勘察设计网
  • 外卖网站设计企业网站优化做法
  • 专业的营销型网站制作wordpress版权年份
  • 程序员会搭建非法网站吗怎么把wordpress字去掉
  • 牡丹江营商环境建设监督局网站中国档案网站建设的特点
  • 网站欣赏网站欣赏知名企业网站搭建
  • 书店网站建设可行性分析为大型企业设计网络营销方案
  • 北京教育云平台网站建设中国服装设计网站
  • 网络公司专业做网站豌豆荚app下载
  • 网站建设属于什么岗位济宁网站建设_云科网络
  • wordpress网站监测fwa 网站 欣赏
  • 用jsp做的可运行的网站推广网络
  • 电商网站设计论文wordpress子文件夹建站
  • 临沂网站优化如何如何做公司的网站建设
  • 建设部网站 光纤到户沈阳网页设计兼职
  • 企业网站建设作用宁波企业网站推广效果好
  • wordpress课件站模板做网站的公司 贵阳